如何在一行中打印阵列的所有内容?

Mac*_*Mac 3 java

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

    Letter s = new Letter(); s.setCaracter("s");
    Letter e = new Letter(); e.setCaracter("e");
    Letter a = new Letter(); a.setCaracter("a");
    Letter r = new Letter(); r.setCaracter("r");
    Letter y = new Letter(); y.setCaracter("y");
    Letter o = new Letter(); o.setCaracter("o");
    Letter u = new Letter(); u.setCaracter("u");
    Letter n = new Letter(); n.setCaracter("n");
    Letter g = new Letter(); g.setCaracter("g"); 

    Letter name[] = new Letter[10];

    name[0] = s;
    name[1] = e;
    name[2] = a;
    name[3] = r;
    name[4] = s;
    name[5] = y;
    name[6] = o;
    name[7] = u;
    name[8] = n;
    name[9] = g;


    System.out.println(nombre[0].);//HERE!

  }
}
Run Code Online (Sandbox Code Playgroud)

我想知道一种在控制台中打印所有数组名称[]的方法,以及他的所有内容.看到这样的事情:searsyoung

我尝试过:

System.out.println(Arrays.toString(theArray));
Run Code Online (Sandbox Code Playgroud)

它打印奇怪的东西---->[Letter_Myname.Letter@1d5550d,...

nac*_*okk 6

迭代数组.

for(Letter l : name){
 System.out.print(l);
}
Run Code Online (Sandbox Code Playgroud)

Letter实现中,你必须toString()像这样重写

@Override
public String toString(){
   return caracter;
}
Run Code Online (Sandbox Code Playgroud)

如果你没有覆盖toString你将获得超类toString实现,然后你必须做一些棘手的事情,这样才能得到工作,但不建议.

 for(Letter l : name){
     System.out.print(l.getCaracter());
 }
Run Code Online (Sandbox Code Playgroud)

  • 如果OP没有覆盖`Letter`类中的`toString()`方法,我可能会使用`System.out.print(l.getCaracter())` (2认同)