2012-11-16 56 views
1

在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); 
+0

看看String.replace() – mcalex

回答

1

Apache commons-Lang library有不正是这个StringUtils.replaceChars()实用方法。

在Java说:

一气呵成多个替换字符串中的字符。这种方法也可以用来删除字符。搜索字符的长度通常应等于替换字符的长度。如果搜索字符较长,则额外的搜索字符将被删除。

0
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类。

0

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