javareplaceall()
将“N/A”替换为“0”的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/
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()
plusjoin()
比replace()
或regex快呢?我在大型数据集上进行了测试。不幸的是,考试失败了。我认为您可以在新版本的Java中进行新的测试。看到结果会很有趣。我很乐意帮助你。