我在这堂课上孤立了我原来的问题。它正在返回2 2。第一次执行我得到的代码时1 1,我会发疯,我不理解这种行为public class Test { public static void main(String[] args) { test("A"); } public static void test(String cadena) { System.out.println(cadena.length()); System.out.println("A".length()); }}
2 回答
![?](http://img1.sycdn.imooc.com/533e4c9c0001975102200220-100-100.jpg)
千万里不及你
TA贡献1784条经验 获得超9个赞
您"A"
实际上是两个代码点的序列,一个不可打印的代码点,后跟一个大写的A字母。
"A".codePoints().forEach(System.out::println);
将打印:
8206 65
8206是Unicode字符“左向右标记”(U + 200E)字符。
![?](http://img1.sycdn.imooc.com/54586425000103f602200220-100-100.jpg)
收到一只叮咚
TA贡献1821条经验 获得超4个赞
您在中有看不见的角色A
。两者不一样
System.out.println(cadena.hashCode()); System.out.println("A".hashCode()); System.out.println("A".equals(cadena));
输出:
65 254451 false
添加回答
举报
0/150
提交
取消