[英]How to replace consecutive repeated characters in a string by '0' using regex?
[英]How to replace a repeated char with some characters or string
我需要将重复的char替换为$%
然后将char替换为$%
。
例如,“ 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;
似乎缺少代码,因为我看不到重复字符检查,但是您要做的是在连接它之前先经过str5并剥离开头的所有重复字符。 然后连接到您的String。
这是一个解决方案:如果重复项也大于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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.