在Java中将带空格的String转换为Integer

我正在尝试将String变量转换为整数,只有String看起来像这样(例如):

String string = " 12"; 

所以String在它前面有一个空格。 现在正在从.txt文件中读取String变量,这就是为什么我遇到了在它前面有空间的问题。 我需要将变量转换为int,但是当我尝试时:

 int integer = Integer.parseInt(string); 

要将String传递给一个整数,它会编译,但是在尝试运行程序时出现错误,因为作为String的一部分有空格。

有没有办法将带有前面空格的数字串传递给int? .trim会工作吗? 如果是这样,我将如何使用它? (我对.trim不是很熟悉,我还在学习!!)我很感激你的帮助! ^ _ ^

.trim会工作吗? 如果是这样,我将如何使用它?

是的, trim()将起作用,它将从String删除前导和尾随空格,

 int integer = Integer.parseInt(string.trim()); 

使用Java中的字符串修剪函数首先获取没有空格的字符串,然后解析它…

1.) 删除带修剪的空格 …… 字符串#修剪

 String stringWithoutSpace = string.trim(); 

2.) 解析没有空格的字符串 … 整数#parseInt

 int integer = Integer.parseInt(stringWithoutSpace); 

3.) 一步到位 ……

 int integer = Integer.parseInt(string.trim()); 

如果您有一个由空格分隔的多个数字的字符串,则字符串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;