преобразование строки в int, если в строке есть другие символы - PullRequest
2 голосов
/ 09 октября 2011

Привет, у меня есть строка "72 \ n". Когда я пытаюсь использовать Integer.parseInt ("72 \ n"), он выдает ошибку журнала, не в состоянии проанализировать '72 'как целое числоЧто я могу сделать, чтобы отфильтровать \ n?

Спасибо

Ответы [ 3 ]

3 голосов
/ 09 октября 2011

\n - символ новой строки, который, помимо прочего, является типом пробела. Строки в Java имеют метод trim(), который возвращает копию строки с удаленными начальными и конечными пробелами.

String a = "72\n";
String b = a.trim(); // "72"
2 голосов
/ 09 октября 2011

Простой способ справиться с начальными и конечными пробелами - использовать String.trim().

Вы можете использовать replaceAll или аналогичный для удаления встроенных пробелов и других «шумов», но вы рискуете изменить предполагаемое значение пользователя. Например, встроенный пробел или запятая могли означать, что пользователь думал, что он может / должен ввести несколько чисел. По моему мнению, лучше сказать пользователю, что есть ошибка, чем попытаться исправить ошибку и ошибиться (с точки зрения пользователя).

Таким образом, в этом случае я бы сказал, что использование replaceAll не очень хорошая идея, потому что оно может «исправить» пробел в числе, а также привести или завершить его.

1 голос
/ 09 октября 2011

replaceAll с соответствующим регулярным выражением должно работать хорошо. Например, \\D найдет все нечисловые символы, поэтому myString.replaceAll("\\D", "") может хорошо работать:

  String test2 = "72\n";      
  System.out.printf("\"%s\"%n", test2);

  test2 = test2.replaceAll("\\D", "");
  System.out.printf("\"%s\"%n", test2);

Это становится хитрее, если мы допустим числа с плавающей запятой, не являющиеся целыми числами, которые допускают использование нечисловых символов, зависящих от локали, таких как один . для десятичной точки в США и , в некоторых других местах. *

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