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类。
我构建了一个正则表达式来匹配字符串并捕获感兴趣的子字符串,然后使用字符串连接来添加适当的样板