Функция длины Java String, показывающая неправильное значение - PullRequest
0 голосов
/ 04 мая 2018

В приведенном ниже коде не уверен, почему, но когда мы копируем и вставляем переменную «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 голосов
/ 04 мая 2018

Я скопировал ваш код и вставил его в онлайн-компилятор, и похоже, что в вашей строке есть нарушитель, посмотрите, как выглядит ваш код в компиляторе,

enter image description here

Итак, из-за этих шести точек он печатает длину строки как 6 и печатает ее.

0 голосов
/ 04 мая 2018

Сначала укажите длину в целом числе.

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

Редактировать: как сказано в предыдущем комментарии: data содержит Unicode для пустой строки, если вы хотите напечатать ее таким образом. И Unicode имеет длину 6 символов. Вот почему вы получаете 6 в результате.

0 голосов
/ 04 мая 2018

Первый data содержит 6 раз &#65279 (проверьте это самостоятельно в браузере), который является символом Unicode для нулевого пробела без пробелов. Следующий фактический пустой String. Все работает просто отлично.

...