1

我正在尝试使用将仅包含数字的字符串转换为整数int number = Integer.parseInt(string),但它返回 #

error: Invalid int: "number"

例如,如果字符串为“10”,则返回:Invalid int: "10"。怎么了?

编辑:

FileInputStream fis;
        int number =0;
        String line="";
        try
        {
            fis = new FileInputStream(getFilesDir()+pathToFile);
            BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
            line=reader.readLine();
            Log.e("Read Line", "Read line: *" +line+ "*"); //returns *10*
            try
            {
                number = Integer.parseInt(line.trim());
            }
            catch(NumberFormatException nfe)
            {
                Log.e("ERROR CONVERTING", nfe.getMessage()); // return above error
            }
            reader.close();

        }
        catch(Exception ex)
        {
            Log.e("ERROR OPENING FILE", "Can't open file: "+ex.getMessage());
        }
4

3 回答 3

4

我在这个问题的答案中使用了代码:LINK

str = str.replaceAll("\\D+","");

不知道为什么没有这个它不起作用,因为字符串中除了数字之外没有其他字符,但它不起作用。

于 2013-02-06T18:16:05.930 回答
2

有时它意味着“数字太大”。

我遇到了一种情况,因为我的号码太大了。例子:

Integer.parseInt("201506121234567");

它导致我出现异常 NumberFormat。

为了解决,我改为:

Long.parseLong("201506121234567");

希望它可以帮助某人!

于 2017-09-26T16:10:09.097 回答
1

你真的尝试过"10"或任何其他号码吗?该错误非常具体。

无效的整数:“数字”

这意味着在这一行

Integer.parseInt(string)

string有价值"number"。检查您在哪里设置此值并验证您实际上是在设置数字字符串。

于 2013-02-06T14:31:36.550 回答