我有一个PHP脚本<?=str_replace(array('(',')','-',' ','.'), "", $rs["hq_tel"])?>
这是一个字符串替换函数,它接受字符数组并在找到字符串中的任何字符时替换它们。是否有任何java等效的函数。我找到了一些方法,但有些方法正在使用循环,有些方法重复这些语句,但在java中找不到任何单行解决方案。
提前致谢。
答案 0 :(得分:22)
你可以使用这样的正则表达式:
//char1, char2 will be replaced by the replacement String. You can add more characters if you want!
String.replaceAll("[char1char2]", "replacement");
其中第一个参数是regex
,第二个参数是replacement
。
请参阅docs,了解如何转义特殊字符(如果需要!)。
答案 1 :(得分:15)
你的解决方案就在这里..
替换所有特殊字符
str.replaceAll("[^\\dA-Za-z ]", "");
替换特定的特殊字符
str.replaceAll("[()?:!.,;{}]+", " ");
答案 2 :(得分:2)
String.replaceAll(String regex, String replacement)
答案 3 :(得分:1)
如果您不了解正则表达式,可以使用更详细的内容:
private static ArrayList<Character> special = new ArrayList<Character>(Arrays.asList('(', ')', '-', ' ', '.'));
public static void main(String[] args) {
String test = "Hello(how-are.you ?";
String outputText = "";
for (int i = 0; i < test.length(); i++) {
Character c = new Character(test.charAt(i));
if (!special.contains(c))
outputText += c;
else
outputText += "";
}
System.out.println(outputText);
}
<强>输出:强> Hellohowareyou?
编辑(没有循环但使用正则表达式):
public static void main(String[] args) {
String test = "Hello(how-are.you ?)";
String outputText = test.replaceAll("[()-. ]+", "");
System.out.println(outputText);
}