String.equals()
方法比较两个字符串的后备数组。因此,如果数组的大小不同,则相同的字符串将不相等。
例子:
char[] in = new char[50];
in[0] = 'K';
in[1] = 's';
in[2] = 'h';
in[3] = 'i';
in[4] = 't';
in[5] = 'i';
in[6] = 'z';
String s = new String(in);
System.out.println(s.equals("Kshitiz"));
输出:
假
4条答案
按热度按时间i1icjdpr1#
您不应该创建不包含它们应该包含的内容的字符串。使用类似于
trim
对付坏东西是一种坏习惯。假设您无法修复api给您的字符数组太大,只需在创建字符串之前计算not null字符。
1cosmwyk2#
equals()
退货false
因为这两个字符串不一样。如果您实际打印原始字符串,那么您将看到不同之处。
订单号:
你可以看到这两个字符串是不一样的。
cnh2zyt33#
java的字符串不是以null结尾的。
如果从字节或字符缓冲区创建字符串,请使用允许指定长度的构造函数。
4zcjmb1e4#
我在你的代码中添加了一行代码来显示这里发生了什么。
现在运行这个代码。你可以看到
s
有\u0000
恰尔就在后面Kshitiz