web-dev-qa-db-ja.com

文字列内のすべての非数字を空の文字に置き換えます

public static String removeNonDigits(final String str) {
   if (str == null || str.length() == 0) {
       return "";
   }
   return str.replaceAll("/[^0-9]/g", "");
}

これは、数字を取得して戻るだけで、期待どおりに実行されないはずです。助言がありますか?

16
Milli

JavaはPerlではありません:)"[^0-9]+"を試してください

38
Aaron Digulla

これを試して:

public static String removeNonDigits(final String str) {
   if (str == null || str.length() == 0) {
       return "";
   }
   return str.replaceAll("\\D+", "");
}
17
Yannick Motton

以下を使用します。ここで、enumValueは入力文字列です。

enumValue.replaceAll("[^0-9]","")

これにより、文字列が取得され、数字以外のすべての数字が「」に置き換えられます。

例:入力は_126576、出力は126576になります。

お役に立てれば。

4
raj
public String replaceNonDigits(final String string) {
    if (string == null || string.length() == 0) {
        return "";
    }
    return string.replaceAll("[^0-9]+", "");
}

これはあなたが望むことをします。

2
Per Östlund

この特定のケースでは、文字列上に小さなループを作成することをお勧めします。

StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
    char ch = s.charAt(i);
    if (ch =='0' || ch == '1' || ch == '2' ...) {
        sb.add(ch);
    }
}
return sb.toString();