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 に答える