我 强烈 怀疑这与字符串本身中的文本无关-我怀疑这只是它的显示方式。例如,尝试以下操作:
public class Test { public static void main(String[] args) { String first = "first"; String second = "second"; String third = "third"; String text = first + " " + second + " " + third; System.out.println(text.length()); // Prints 18 }}这打印18,表明所有字符都存在。但是,如果您尝试
text在UI标签中显示,只看到,我不会感到惊讶
first。(在功能较弱的调试器中也可能如此。)
同样,您应该可以使用:
char c = text.charAt(7);
现在
c应该是
'e'“ second”的第二个字母。
基本上,我希望Java的核心完全不关心它包含U + 0000的事实。就Java而言,这只是另一个字符。可能会导致问题的只是本机代码(例如显示)的边界。
如果这样做没有帮助,请 准确 解释您所观察到的内容-是什么使您认为未附加其余数据。
编辑:另一种诊断方法是打印出字符串中每个字符的Unipre值:
for (int i = 0; i < text.length(); i++) { System.out.println((int) text.charAt(i));}


