Java等效的Oracle翻译

在java中是否有任何与oracle翻译函数相同的字符串函数或库?

在oracle我可以这样做:

select translate( '23423k!(dfgd){sdf};', '(){}k!', '{}()' ) from dual; 

得到这个:

 23423{dfgd}(sdf); 

但在java中,如果我这样做:

  String a="23423k!(dfgd){sdf};"; String b=a .replace("(", "{") .replace(")", "}") .replace("{", "(") .replace("}", ")") .replace("!", "") .replace("k", "") ; System.out.println("ori:"+a); System.out.println("mod:"+b); 

我明白了:

 ori:23423k!(dfgd){sdf}; mod:23423(dfgd)(sdf); 

Apache commons-Lang库具有StringUtils.replaceChars()实用程序方法,它正是这样做的。

java的说法是:

一次性替换String中的多个字符。 此方法也可用于删除字符。 搜索字符的长度通常应等于替换字符的长度。 如果搜索字符较长,则删除额外的搜索字符。

 String a="23423k!(dfgd){sdf};"; String b=a .replace("(d", "{d") .replace("d)", "d}") .replace("{s", "(s") .replace("f}", "f)") .replace("!", "") .replace("k", "") ; 

这有效,但这不是正确的方法。 看看使用String.replace()或StringBuffer类。

我构建了一个正则表达式来匹配字符串并捕获感兴趣的子字符串,然后使用字符串连接来添加适当的样板