繁体   English   中英

如何用某些字符或字符串替换重复的字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM