出于某种原因,在某些情况下使用 string.split 会出现问题。它必须与文件的编码有关。但是,我确保在 Eclipse 中的 Encoding 下,它在所有情况下都显示为“Default MacRoman”——这是所有代码文件中使用的默认值。
然而,当我将一个字符串从我的一个 java 文件复制到另一个包含该字符串的文件时:
"Test String" - while typing this string again "Test String"
它们是有区别的。在第一个中,“”空间编码为 160,而在第二个中,它是 32。
因此,在使用 split 时,我必须确保使用正确编码的“”。
这就是我现在的做法——我认为不是很优雅。
wherelongText
包含要拆分的文本
char splitChar;
if (longText.indexOf((char) 32) > 0) {
splitChar = (char) 32;
} else
splitChar = (char) 160;
String splitCharString = String.format("%c", splitChar);
String[] tokens = longText.split(splitCharString);
有一个更好的方法吗?
ps 只是将 Eclipse 中文件的编码显式更改为 MacRoman 不起作用