文字列が以下のコードを使用して連続した整数で構成されているかどうかを判断しようとしています。しかし、実行するとNumberFormatExceptionがスローされます。substring()を使用した場合のNumberFormatException
これは、substring()のインデックス値として変数iを使用したことが原因であると判断しました。
私はそれを行う別の方法を見つけることができないので、これは本当に不満でした。誰もがなぜsubstring()がインデックス値として変数を使用できないのか、この問題を解決/回避するために何ができるのかを知っていますか? (巨大なifステートメントを使用する以外の)任意のヘルプは本当に感謝される!ありがとう!
public static void main(String[] args) {
String x = "12345";
int counter = 0;
for (int i = 0; i < 5; i++) {
if (Integer.parseInt(x.substring(0, 1)) == (Integer.parseInt(x.substring(i, i++))) - i) {
counter++;
}
}
if (counter == 5) {
System.out.println("String is sequential");
}
}
別に何か他のものから私は、あなたはおそらく、私は*内部*ループ '++'インクリメントするべきではありません。 'x.substring(i、i + 1)'を意味しますか? –
'x.substring'に' i ++ 'を使わないと、後でそれをインクリメントします。これはループジョブでなければなりません。単に 'i + 1'を実行し、' x.length -1 'までループするだけです。 – SomeJavaGuy
しかし、' Character.getNumericValue(x.charAt(i)) 'を使うことができます。 –