【问题标题】:Parse String containing a Number into a INT将包含数字的字符串解析为 INT
【发布时间】:2014-02-25 14:03:10
【问题描述】:

我得到一个包含数字 0 的字符串。 知道,我需要将其解析为int,所以我尝试了以下操作:

int oldfollowcounter = Integer.parseInt(followerzahl);

followerzahl 是字符串。

我总是得到那个错误:

Exception in thread "Timer-4" java.lang.NumberFormatException: For input string: "0
"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at YBot.MyBot$3.run(MyBot.java:472)
    at java.util.TimerThread.mainLoop(Unknown Source)
    at java.util.TimerThread.run(Unknown Source)

而本地的int 只是空的。

有什么想法吗?

字符串包含:

followerzahl=0

followerzahl=0

followerzahl=0

followerzahl=0

【问题讨论】:

  • 看起来在零之后有一个换行符。尝试拨打String#trim()
  • 向我们展示您的完整字符串
  • 这是完整的字符串:“0\n”

标签: java string parsing integer


【解决方案1】:

Integer.parseInt 是一个非常严格的解析器,它不会解析 String,除非它只包含一个有效整数而没有其他内容。

您需要先删除字符串中可能存在的任何其他内容。在这种情况下,数字后面似乎有空格(换行符),因此followerzahl.trim() 足以删除空格。如果有更多(例如引号或其他字符),您将需要编写一些内容来仅提取包含数字的字符串的位,然后对其进行解析。

【讨论】:

    【解决方案2】:

    问题是 “0”“0.”

    让我们看看Integer.parseInt 只允许数字,所以小数点,额外的空格是非法的。

    因此 NumberFormatException

    你应该确保你的输入确实是一个

    整数(即“20”)

    或者如果你真的想允许小数,那么使用

    Double.parseDoubleFloat.parseFloat,

    或者如果发现任何空格“0”你应该先使用

    Integer.parseInt(followerzahl.trim()),

    Double.parseInt(followerzahl.trim()),应该可以完美运行。

    【讨论】:

      【解决方案3】:

      您的字符串followerzahl 中可能有"0。请重新检查!

      【讨论】:

      • 试图解析的字符串在异常中总是用 qoutes 表示...问题是行分隔符。
      • 添加了上面字符串的全文。看起来我有一个“输入”
      【解决方案4】:

      在解析字符串时,请务必确保字符串不包含除数字以外的任何其他字符。您的字符串很可能包含空格、标点符号或无法转换为整数的内容。所以总是建议在解析之前检查你的字符串。

      在这种情况下,很可能是字符串中的 " 位置错误。

      【讨论】:

        【解决方案5】:
        int oldfollowcounter = Integer.parseInt(followerzahl);
        

        followerzahl 字符串必须是整数。

        使用下面的代码:

                String followerzahl = "0";
                int oldfollowcounter = Integer.parseInt(followerzahl);
                System.out.println(oldfollowcounter);
        

        【讨论】:

        • "0 不是整数@exception
        • 第二个"在另一行,不是"0
        • 这到底是什么意思?我不明白:3
        • " 来自错误信息,它不是字符串值的一部分。
        • String followerzahl = "0";它有效,你可以转换为整数
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-14
        • 1970-01-01
        • 2016-05-23
        • 1970-01-01
        相关资源
        最近更新 更多