Java的字符串长度函数显示不正确的值

时间:2018-05-04 12:17:47

标签: java string string-length

在下面的代码中不确定原因,但是当我们复制并粘贴变量" data"然后使用空白字符串即使它显示长度为6.要测试是请复制相同的代码片段,即使我们创建一个具有相同名称的新变量(在下面的代码中注释)它也能正常工作。要测试的是请按原样复制和粘贴代码,因为只有复制粘贴它才会给它带来麻烦。

String data=""; // Copy this string variable, when we print this it gives output as 6
//String data=""; //This show's correct value as 0
System.out.println(data.length());

3 个答案:

答案 0 :(得分:7)

第一个data持有6次&#65279(在浏览器中自己检查),这是一个零字宽无空间的Unicode字符。接下来是一个实际的空String。一切都很好。

答案 1 :(得分:1)

我已经复制了你的代码并将其粘贴到在线编译器中,看起来你在字符串中得到了trespasser,看看你的代码在编译器中的样子,

enter image description here

因此,由于这六个点,它的打印字符串长度为6并打印出来。

答案 2 :(得分:0)

首先将长度放在整数中。

String data="";
int i = data.length();
System.out.println(i);

编辑:正如先前评论中所述: 如果要像这样打印数据,则数据保存空字符串的unicode。而unicode长度为6个字符。这就是为什么你得到6的结果。