文字列に「1 22a 34 718 u3ou1」と指定します。目的は、この場合には、それは私はこのようにそれを試して1と34と718だだけINT値を見つけることである:文字列の整数値のみを取得し、2番目の最大値を見つける
String str = "1 22a 34 718 u3ou1.";
str = str.replaceAll("[^-?0-9]+", "*");
System.out.println(Arrays.asList(str.trim()));
本の出力である:[1 22 34 718 3 1]。 出力は[1 34 718]でなければなりません。 誰かがバグを見つけられますか?
数値以外の数値を数値に変換しないでください。 – azurefrog
文字+数字以外のすべての部分は無視する必要があります – progress190
しかし、あなたはそれをしていません。あなたは、文字を含む部分を取り出して文字を取り除くので、「本当の」数字と無視すべきものを区別することはできません。 – azurefrog