我想在字符串中分别用A,B,C,D替换所有出现的W,X,Y,Z。
我尝试了这种粗暴的方式;
A = A.replaceAll("W", "A").replaceAll("X", "B").replaceAll("Y", "C").replaceAll("Z", "D");
我问这个问题是为了学习更好更有效的风格。
答案 0 :(得分:0)
只需使用String.replace(char,char)。 但是,如果你只想循环一个字符,而不是4次,你可以 迭代每个以在索引查找中替换。
Ex :(这仅适用于大写字母,对于任何ascii,你需要一个更大的char [],而对于unicode则更糟糕)。如果你预先填满整个64k的字符(当然是一些静态变量),可以避免使用if。
StringBuilder text = new StringBuilder(yourinput);
String transform = "ABCDEFGHIJKLMNOPQRSTUVABCD"; //notice the tail ABCD
for(int i=0, n=text.length(); i<n; i++) {
char c = text.charAt(i);
if(c>='A' && c<='Z')
sb.setCharAt(i, transform.chartAt(c-'A'));
}
return text.toString();