Преобразование строки с пробелами в целое число в java
Я пытаюсь преобразовать переменную типа String в целое число, строка выглядит так (например):
String string = " 12";
и поэтому строка имеет пробел перед ней. Теперь строковая переменная считывается из a .txt-файл, поэтому у меня возникает проблема с пространством перед ним. Мне нужно преобразовать переменную в int, но когда я пытаюсь:
int integer = Integer.parseInt(string);
чтобы передать строку в целое число, она компилируется, но я получаю ошибку при попытке запустить программа, так как есть пробел как часть строки.
есть ли способ передать строку чисел с пробелом перед ней в int? Бы.аккуратная работа? И если да, то как мне это использовать? (Я не очень хорошо с ним знаком .Трим, я еще учусь!! Спасибо за помощь! ^_^
4 ответов
будет .аккуратная работа? И если да, то как мне это использовать?
да trim()
будет работать, он удалит ведущие и конечные пробелы из String
,
int integer = Integer.parseInt(string.trim());
используйте функцию обрезки строк в Java, чтобы сначала получить строку без пробелов, а затем проанализировать ее...
1.) удалить пробелы с отделкой ... строка#trim
String stringWithoutSpace = string.trim();
2.) разберите строку без пробелов ... целое число#parseInt
int integer = Integer.parseInt(stringWithoutSpace);
3.) сделать все выше в один шаг ...
int integer = Integer.parseInt(string.trim());
метод String split () хорошо работает, если у вас есть строка из нескольких чисел, разделенных пробелами.
String numbers = "1 23 456";
String[] numbersArray = numbers.split(" "); // splitting string by spaces
System.out.println(numbersArray.toString());
// output ["1","23","456"]
тогда вы можете использовать Integer.parseInt () для каждого индекса массива. Надеюсь, это поможет
чтобы убедиться, что ваш код не выдает NumberFormatException
или даже NullPointerException
, когда вы получаете номер от пользователя, используйте общие классы apache:
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
.....
// '1' is the default value which is returned when the string can not be converted to int
// The StringUtils.trimToEmpty do both left and right trim
int number = NumberUtils.toInt(StringUtils.trimToEmpty( " 12 ",1)) = 12;