我有一个 PHP 脚本<?=str_replace(array('(',')','-',' ','.'), "", $rs["hq_tel"])?>
,这是一个字符串替换函数,它采用字符数组并在找到字符串中的任何字符时替换它们。是否有任何与该功能等效的java。我找到了一些方法,但有些使用循环,有些重复语句,但在 java 中没有找到任何像这样的单行解决方案。
提前致谢。
您可以使用这样的正则表达式:
//char1, char2 will be replaced by the replacement String. You can add more characters if you want!
String.replaceAll("[char1char2]", "replacement");
其中第一个参数是regex
,第二个参数是replacement
。
请参阅有关如何转义特殊字符的文档(以防万一!)。
你的解决方案在这里..
替换所有特殊字符
str.replaceAll("[^\\dA-Za-z ]", "");
替换特定的特殊字符
str.replaceAll("[()?:!.,;{}]+", " ");
如果您不了解正则表达式,则可以使用更详细的内容:
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);
}
输出: Hellohowwareyou?
编辑(没有循环但使用正则表达式):
public static void main(String[] args) {
String test = "Hello(how-are.you ?)";
String outputText = test.replaceAll("[()-. ]+", "");
System.out.println(outputText);
}
String.replaceAll(String regex, String replacement)