【问题标题】:Java's String's length function showting incorrect valueJava字符串长度函数显示不正确的值
【发布时间】:2018-05-04 12:17:46
【问题描述】:

在下面的代码中不知道为什么,但是当我们复制并粘贴变量“data”时,即使是空白字符串,它也显示长度为 6。要测试是请复制相同的代码 sn-p,它是即使我们创建一个具有相同名称的新变量(在下面的代码中注释)也可以正常工作。要测试的是,请照原样复制和粘贴代码,因为只有复制和粘贴才会有问题。

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());

【问题讨论】:

  • 打印String所包含的字符,每个字符的字节数。
  • 并首先将单个字符串字符转换为 int,(int) data.charAt(i)。然后你可以在 ascii 表中查看它们是什么字符。我猜它的不可打印的......

标签: java string string-length


【解决方案1】:

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

所以,由于这六个点,它打印字符串长度为 6 并打印它。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      把长度放在一个整数前面。

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

      编辑:如先前评论中所述: 如果你想像这样打印它,数据会保存一个空字符串的 unicode。并且 unicode 是 6 个字符长。这就是你得到 6 的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-29
        • 2022-07-04
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 2018-02-15
        • 1970-01-01
        相关资源
        最近更新 更多