Java: получение неверной string.length () после использования trim () - PullRequest
7 голосов
/ 30 мая 2010

У меня есть строка "22", и я получаю 3 как длину;

Я использовал .trim()

Что еще может быть причиной для этого?

Ответы [ 3 ]

27 голосов
/ 30 мая 2010

Вы должны дать нам код, который демонстрирует проблему, но я думаю, вы сделали что-то вроде этого:

String str = "22 ";
str.trim();
System.out.println(str.length());

Но str.trim() не изменяется str (так как строки неизменяемы). Вместо этого он возвращает новую обрезанную строку. Итак, вам нужно что-то вроде этого:

String str = "22 ";
str = str.trim();
System.out.println(str.length());
11 голосов
/ 30 мая 2010

Попробуйте это:

System.out.println(java.util.Arrays.toString(theString.toCharArray()));

Это дамп char[] версии String, поэтому мы можем, возможно, увидеть, содержит ли она что-нибудь смешное.

0 голосов
/ 30 мая 2010

, так как я нашел причину, формулируя вопрос, я собираюсь ответить самому себе.

Если строка была создана с помощью .substring или split, вся строка сохраняется вместе с положением и длиной подстроки.

это явно нельзя обрезать (было "22")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...