我正在读取 CSV 文件,方法是使用com.opencsv.CSVReader
像下面这样
String[] headers = csvReader.readNext();
标题的值如下屏幕截图所示:
这里的编码器是什么(以黄色突出显示)?
为什么第一个索引的值为 1,而所有其他索引的值为 0?
官方回应是“不关你的事”,因为它是私有成员 :P 这意味着它很可能是特定于实现的,并且在其他供应商的 JVM 版本中找不到。
实际的响应可以在源代码 https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/String.java#L152为了String
class
用于对字节进行编码的编码的标识符。
此实现中支持的值是
LATIN1
UTF16
该字段受VM信任,并且受到
如果 String 实例是常量,则常量折叠。覆盖这个
施工后的现场会出现问题。
As to why第一个是不同的,这取决于每个人的方式String
被实例化。默认值的选择取决于 JVM 设置的参数。与默认值不同的值表明String
是从另一个构建的String
或字节数组。
在第一种情况下,这意味着原始字符串具有coder
价值本身。
在第二种情况下,它取决于调用的结果decode
的方法StringCoding
返回一个对象的类code
值设置取决于我上面谈到的初始参数(由 JVM 设置的参数)以及传递给构造函数的编码String
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)