使用Java在stdout上输出奇怪的输出

时间:2015-11-15 10:56:03

标签: java stdout

我用Eclipse编写Java学校程序,输出有问题,代码如下:

select * 
from tblNormativiIspratnica 
inner join tblNormativiSubIspratnica on tblNormativiIspratnica.ZaklucokBroj = tblNormativiSubIspratnica.ZaklucokBroj

输出真的很奇怪:

 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);
    }
}

我无法理解这些字符串的来源。 谁能帮帮我吗?谢谢!

编辑:我发现了错误,

[Z@106d69c[Z@106d69c[Z@106d69c

2 个答案:

答案 0 :(得分:0)

更改

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]);

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

答案 1 :(得分:0)

这是因为b的类型是boolean[]。当您尝试打印数组时,您可以期待类似的输出。这是打印所有元素的正确方法:

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

您可以选择使用for-each循环:

for(boolean var: b) {
  System.out.println(var);
}