Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用字符串中的空字符替换所有非数字_Java_Regex_Replace - Fatal编程技术网

Java 用字符串中的空字符替换所有非数字

Java 用字符串中的空字符替换所有非数字,java,regex,replace,Java,Regex,Replace,这应该只获取数字并返回,但不能按预期执行!有什么建议吗?Java不是Perl:)试试这个: public static String removeNonDigits(final String str) { if (str == null || str.length() == 0) { return ""; } return str.replaceAll("/[^0-9]/g", ""); } 这就是您想要的。对于这种特殊情况,我建议在字符串上有一个小循环 pub

这应该只获取数字并返回,但不能按预期执行!有什么建议吗?

Java不是Perl:)试试这个:

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

这就是您想要的。

对于这种特殊情况,我建议在字符串上有一个小循环

public String replaceNonDigits(final String string) {
    if (string == null || string.length() == 0) {
        return "";
    }
    return string.replaceAll("[^0-9]+", "");
}
StringBuilder sb=新建StringBuilder();
对于(int i=0;i
使用以下命令,其中
enumValue
是输入字符串

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();
这将获取字符串并用“”替换所有非数字数字

例如:输入为_126576,输出为126576


希望这能有所帮助。

您需要避开斜杠(为了Java,而不是正则表达式):“\\D+”字符。isDigit(…)是一个比((ch='0'| | ch='1'| ch='2'…)更好的选项。如果您查看String.replaceAll方法,您将看到它正在执行Pattern.compile(regex).matcher(this).replaceAll(replacement)如果你经常这样做的话,这是低效的。更好的方法是将编译后的模式提取为常量。@whyoz:请询问一个新的question@whyoz:没有人会在评论中找到答案。“[^0-9.]+”将保留小数点,如果您碰巧发现这篇文章需要执行soI,我希望在其中使用Perl正则表达式Java@AaronDigulla:如何也包括负数?我的意思是,我必须用一个空格来替换所有不是正数/负数的东西。怎么做?
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();
enumValue.replaceAll("[^0-9]","")