我需要用$%
替换重复的char,后跟char后跟$%
。
e.g。 “HELLO”将成为“HE $%L $%O”
我写的以下代码给出了“HE $%L $%LO”。
请指导
int index=0;
String str1="";
String str2="";
String str4="";
String str5="";
for(int i=0;i<str.length();i++) {
char ch=str.charAt(i);
index=str.indexOf(ch);
if(index!=i) {
str4="$%"+str.charAt(index)+ "$%";
str1=str.charAt(index)+str5;
str2=str.replaceFirst(str1,str4);
}
}
return str2;
答案 0 :(得分:0)
看起来代码丢失了,因为我看不到重复的字符检查,但你想要做的是在连接之前通过str5并去除开头的所有重复字符。然后连接到你的String。
答案 1 :(得分:0)
这是一个解决方案:如果重复项也超过2,则Id解决此问题。所以删除所有重复项:
public class Converter {
public static void main(String[] args) {
final String result = replace("HELLO");
System.out.println("result = " + result);
}
private static String replace(String data) {
final StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < data.length();) {
int j = i + 1;
while (j < data.length() && data.charAt(i) == data.charAt(j)) {
j++;
}
if(j > i + 1) { // exist duplicate
stringBuilder.append("$%").append(data.charAt(i)).append("$%");
} else {
stringBuilder.append(data.charAt(i));
}
i = j;
}
return stringBuilder.toString();
}
}
结果是:
result = HE$%L$%O