Преобразование строки с пробелами в целое число в 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;