从字符串转换为整数时无效的int

时间:2013-02-06 14:27:47

标签: java parsing

我正在尝试使用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());
        }

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

有时候意味着“数字过大”。

我遇到过这种情况,因为我的号码太大了。 例如:

Integer.parseInt("201506121234567");

它导致了我的异常NumberFormat。

要解决,我改为:

Long.parseLong("201506121234567");

希望它有所帮助!

答案 2 :(得分:1)

您是否真的尝试使用"10"或任何其他号码?错误非常具体。

  

无效的int:“数字”

这意味着在这一行

Integer.parseInt(string)

string的值为"number"。检查您在何处设置此值并验证您实际上是在设置数字字符串。