JavaParseInt健全性チェック

2012年01月16日に質問されました。  ·  閲覧回数 1k回  ·  ソース

Tony picture
2012年01月16日

String配列要素からintを解析しようとしています。 これが私のコードです:

String length = messageContents[k].replace("Content-Length:", "").replace(" ", "");
System.out.println("Length is: " + length);
int test= Integer.parseInt(length);

System.out.printlnは次を返します。長さ:23

ただし、 Stringintに解析しようとすると、 java.lang.NumberFormatExceptionがスローされます。

java.lang.NumberFormatException: For input string: "23"

23がint解析されない方法について少し混乱しています。 そこにはそれを妨げている他のキャラクターがいるとしか思えませんが、私はそれを一生見ることができません。

助言がありますか?

ありがとう

アップデート

Despite the String length having only two characters, Java reports its length as three:
Length is: '23'
Length of length variable is: 3
length.getBytes = [[email protected]

回答

Andrew Thompson picture
2012年01月16日
7

このバリアントを試してください:

int test= Integer.parseInt(length.trim());
Silver Quettier picture
2012年01月16日
3

この文字列には見えない文字が含まれている可能性があります。

私の考え:Pattern / Matcherで正規表現を使用して、文字列内のすべての非数字を削除してから、それを解析します。