文字列の中の数値のみを取り出す方法

その1

String str = "aaa1234, ^&*2233pp";
String intStr = str.replaceAll("[^\\d]", "");
System.out.println(intStr);
// output: 12342233

その2

String str = "aaa1234, ^&*2233pp";
String intStr = str.replaceAll("[^0-9]", "");
System.out.println(intStr);
// output: 12342233

その3

String str = "aaa1234, ^&*2233pp";
String intStr = "";
for (int i = 0; i < str.length(); i++) {
    char ch = str.charAt(i);
    if (48 <= ch && ch <= 57) {
        intStr += ch;
    }
}
System.out.println(intStr);
// output: 12342233

その4

String str = "aaa1234, ^&*2233pp";
IntStream stream = str.chars();
String intStr = stream.filter((ch)-> (48 <= ch && ch <= 57))
        .mapToObj(ch -> (char)ch)
        .map(Object::toString)
        .collect(Collectors.joining());
System.out.println(intStr);
// output: 12342233

参考

https://codechacha.com/ja/java-extract-integers-from-string


投稿日

カテゴリー:

, , ,

投稿者: