java - 如何删除直方图中的重复字符[JAVA]

标签 java loops histogram

class Mclass {
        public static void main(String[] args) {

        char[] a= {'a','b','c','d','a','b','c'};
        int count = 0;

        for (int i=0; i<a.length; i++)
        {
                  for(int j=0; j<a.length; j++)
                  {
                      if ( a[j] == a[i] )
                          count += 1;
                  }
                  System.out.println(a[i]+":"+count);
                  count = 0;
        }
    }

输出:

a:2 乙:2 :2 日:1 a2 乙:2 c:2

这里我想停止循环,直到计数到 d = 1。但它再次打印相同的变量?我怎样才能做到这一点?

最佳答案

如果你不想打印已经打印过的字符,你需要将它维护在某个地方,比如在Set中,并且仅在Set不打印时才打印' t 包含该字符,打印后将其添加到 Set 中,这样下次在病房时它就不会被打印。

将您的代码更改为此,

class Mclass {
    public static void main(String[] args) {
        Set<String> doneSet = new HashSet<String>();

        char[] a = { 'a', 'b', 'c', 'd', 'a', 'b', 'c' };
        int count = 0;

        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a.length; j++) {
                if (a[j] == a[i])
                    count += 1;
            }
            if (!doneSet.contains(String.valueOf(a[i]))) {
                System.out.println(a[i] + ":" + count);
                doneSet.add(String.valueOf(a[i]));
            }
            count = 0;
        }
    }
}

这会按照您的预期提供以下输出,

a:2
b:2
c:2
d:1

关于java - 如何删除直方图中的重复字符[JAVA],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53288488/

相关文章:

java - Java while循环不适用于字符的输入检查

python - 在 python 中制作字符串值的直方图

r - 如何使用 ggplot2 在直方图条上显示百分比标签

java - 如何检测不同类型的PDF

java - 如何设置新的 Jenkins slave

PHP & MySQL : While Loop

java - 在 swing 中使用 jLabels 进行循环

javascript - glGetHistogram WebGL/C++

java - maven-archetype-mojo 和 maven-archetype-plugin 有什么区别?

java - Java中如何获取一个新的指针?