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/