使用Java在标准输出上的奇怪输出

使用Java在标准输出上的奇怪输出,java,stdout,Java,Stdout,我用Eclipse为学校编写了一个Java程序,结果发现输出有问题,代码如下: public class Main { public static boolean[] cercaK(int k , String[] a){ boolean b[] = new boolean[a.length]; int conta = 0; for(int i = 0; i < a.length; i++){ b[i] =

我用Eclipse为学校编写了一个Java程序,结果发现输出有问题,代码如下:

 public class Main {
    public static boolean[] cercaK(int k , String[] a){
        boolean b[] = new boolean[a.length];
        int conta = 0;
        for(int i = 0; i < a.length; i++){
            b[i] = false;
            int j = 0;
            while(j < a[i].length()-1 && !b[i]){
                    if(a[i].charAt(j)==a[i].charAt(j+1))
                        conta++;
                    else
                        conta = 0;
                    if (conta == k)
                        b[i] = true;
                    j++;
            }
        }
        return b;
    }
    public static void main(String[] args) {
        String[] a = {"accesso","bbtcrryy","ggg"};
        int k = 2;
        if (k<=0)
            System.out.println("Errore!");

        boolean[] b = cercaK(k,a);

        for(int i = 0; i < b.length; i++)
            System.out.print(b);
    }
}
我不明白这些字符串是从哪里来的。 有人能帮我吗?谢谢

编辑:我发现了错误

for(int i = 0; i < b.length; i++)
            System.out.print(b[i]);
改变


以便打印数组的项,而不是数组本身。

这是因为b的类型是布尔[]。当您尝试打印阵列时,可以预期类似的输出。这是打印所有元素的正确方法:

for(int i = 0; i < b.length; i++)
        System.out.print(b[i]);

确切地您没有打印数组的元素,而是直接调用它。GJ;
for(int i = 0; i < b.length; i++)
    System.out.print(b);
for(int i = 0; i < b.length; i++)
    System.out.print(b[i]);
for(int i = 0; i < b.length; i++)
        System.out.print(b[i]);
for(boolean var: b) {
  System.out.println(var);
}