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

时间:2014-05-25 03:18:49

标签: java string integer

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

String string = " 12";

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

int integer = Integer.parseInt(string);

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

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

5 个答案:

答案 0 :(得分:13)

  

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

是的,trim()可以使用,它会从String删除前导和尾随空格,

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

答案 1 :(得分:6)

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

1。)删除带修剪的空格 ... String#trim

String stringWithoutSpace = string.trim();

2。)解析不带空格的字符串 ... Integer#parseInt

int integer = Integer.parseInt(stringWithoutSpace);

3。)一步完成上述所有事情 ......

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

答案 2 :(得分:5)

如果您有一个由空格分隔的多个数字的字符串,则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()。 希望有所帮助

答案 3 :(得分:0)

为了确保您的代码不会抛出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; 

答案 4 :(得分:0)

如果您使用Java 11,则可以使用String::strip方法。例如:

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

strip()方法类似于trim(),但使用Character.isWhitespace(int)来解析空格。 (Character.isWhitespace(int)方法可识别Unicode。)