Java-如何将字符char []中的相同字符转换为星号'*',前提是字符之间必须相同

问题描述

char []标签=新的char [] {'b','a','a','a','z','a'};

        char change;
        
        for (int i=0; i<tab.length-1; i++) {
            if (tab[i] == tab[i+1]) {
                change = tab[i]; 
                
                for (int j=0; j<tab.length; j++) { 
                    if (tab[j] == change) {
                        tab[j] = '*';
                    }
                }
                
            }
        }

我只想将角色更改为与自己相邻的星星 结果应该是b *** za

解决方法

每当您看到两个相同的连续字符,然后循环通过将它们设置为''a nd来设置最后一个重复字符,我们将带有prev标志;如果为true,则我们将重复字符设置为最后一个复制到“

        char[] tab = new char[] {'b','b','a','z','b'};
        char change;
        boolean prev=false;
        for (int i=0; i<tab.length-1; i++) 
        {
            prev=false;
            while(i+1<tab.length && tab[i]==tab[i+1])
            {
                tab[i++]='*';
                prev=true;
            }
            if(prev)
                tab[i]='*';
        }
        System.out.println(Arrays.toString(tab));

预期输出:

[*,*,z,a,b,*]
,

您快到了。更改以下部分

for (int j=0; j<tab.length; j++) { 
    if (tab[j] == change) {
        tab[j] = '*';
    }
}

for (int j = i; j < tab.length && tab[j] == change; j++) {
    tab[j] = '*';
}

完整代码:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        char[] tab = new char[] { 'b','a' };

        char change;

        for (int i = 0; i < tab.length - 1; i++) {
            if (tab[i] == tab[i + 1]) {
                change = tab[i];

                // Start with index,i and replace each element with '*' till tab[j] == change
                for (int j = i; j < tab.length && tab[j] == change; j++) {
                    tab[j] = '*';
                }
            }
        }
        System.out.println(Arrays.toString(tab));
    }
}

输出:

[b,a]

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...