Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
javareplaceall()_Java_String - Fatal编程技术网

javareplaceall()

javareplaceall(),java,string,Java,String,将“N/A”替换为“0”的replaceAll()函数的正则表达式是什么 输入:N/A 输出:0假设s是字符串 s.replaceAll("N/A", "0"); 你甚至不需要正则表达式。这就足够了: s.replace("N/A", "0"); 为什么要使用正则表达式呢?如果不需要图案,只需使用replace: String output = input.replace("N/A", "0"); 您可以尝试更快的代码。如果字符串仅包含不适用项: return str.equals("N/

将“N/A”替换为“0”的
replaceAll()
函数的正则表达式是什么

输入:
N/A


输出:
0
假设s是
字符串

s.replaceAll("N/A", "0");
你甚至不需要正则表达式。这就足够了:

s.replace("N/A", "0");

为什么要使用正则表达式呢?如果不需要图案,只需使用
replace

String output = input.replace("N/A", "0");

您可以尝试更快的代码。如果字符串仅包含不适用项:

return str.equals("N/A") ? "0" : str;
如果字符串包含多个不适用项:

return join(string.split("N/A"), "0")
            + (string.endsWith("N/A") ? "0" : "");
其中join()是方法:

private String join(String[] split, String string) {
    StringBuffer s = new StringBuffer();
    boolean isNotFirst = false;
    for (String str : split) {
        if (isNotFirst) {
            s.append(string);
        } else {
            isNotFirst = true;
        }
        s.append(str);
    }
    return s.toString();
}

速度是原来的两倍

Java API将第一个参数描述为正则表达式。这就是问题的形式。@SteveT:是的,但我的观点是根本不需要使用
replaceAll
。啊-谢谢。我没有注意到你建议的不同方法。知道这一点很好。我假设您的代码工作正常,但您为什么认为调用
split()
plus
join()
replace()
或regex快呢?我在大型数据集上进行了测试。不幸的是,考试失败了。我认为您可以在新版本的Java中进行新的测试。看到结果会很有趣。我很乐意帮助你。