【问题标题】:Converting a String with spaces to an Integer in java在java中将带空格的字符串转换为整数
【发布时间】:2014-07-14 03:18:35
【问题描述】:

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

String string = " 12";

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

int integer = Integer.parseInt(string);

要将字符串传递为整数,它可以编译,但在尝试运行程序时出现错误,因为字符串中有空格。

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

【问题讨论】:

  • 我知道您正在学习,但是如果您可以编写代码并运行此代码,为什么不能检查 .trim() 是否有效?
  • 如果值是从文件中读取的,你应该使用ScannernextInt()方法。

标签: java string integer


【解决方案1】:

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

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

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

【讨论】:

【解决方案2】:

在Java中使用string trim函数,先得到一个不带空格的字符串,然后解析...

1.) 用修剪删除空格 ... String#trim

String stringWithoutSpace = string.trim();

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

int integer = Integer.parseInt(stringWithoutSpace);

3.) 一步完成以上所有操作 ...

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-24
          相关资源
          最近更新 更多