我的测试程序是:
public class Test {
public static void main(String[] args) {
char ch = 65270;
StringBuilder sb = new StringBuilder();
sb.append(ch);
sb.append(" -> ");
sb.append(Integer.valueOf(ch));
System.out.println(sb.toString());
}
}
结果是:65270
我不明白为什么?
我过期的结果是:? -> 65270
终端中的实际结果(使用命令“ javac Test.java”和“ java Test”): -> 65270
但是在Eclipse控制台中:65270
看起来像是Eclipse问题?
最佳答案
产生此结果的原因是字符65270是阿拉伯语连字。阿拉伯语是一种从右到左书写的脚本。因此,Eclipse控制台将方向从左到右更改为从右到左。如果您尝试使用不是从右到左脚本的脚本中的字符,则结果将与预期的一样。例如,尝试使用0x5678,它是吨(重量)的旧中文符号。
关于java - 是否有StringBuilder错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27086347/