繁体   English   中英

返回给出奇怪结果的字符串数组的语句

[英]Return statement for a string array giving strange result

我正在创建一个String数组,并使用System.out.println打印该数组中的值。 一切正常,一切正常,返回了[南非,英国],但是除非我包含return语句,否则代码不会编译,但是return语句只会转储大量的垃圾“ [Ljava.lang.String; @ 85bdf6”” 。 有什么办法可以组合System.out.println和return语句,使它们执行相同的操作,而我只是出现了[South Africa,England]?

   public String[] teamsToProgress()
  { 
    Arrays.sort(teams);
    String[] teamsToProgress;
    teamsToProgress = new String[2];
    String team1 = teams[0].getName();
    String team2 = teams[1].getName();
    teamsToProgress[0] = team1;
    teamsToProgress[1] = team2;
    System.out.println(Arrays.toString(teamsToProgress));
    return teamsToProgress;
  }

这是因为您将String[]作为返回类型。 将其更改为void编译。 您可以在此处阅读“垃圾” [Ljava.lang.String;@85bdf6含义。

但是return语句只是转储了很多垃圾“ [Ljava.lang.String; @ 85bdf6”

那不是return语句,那就是您对返回值所做的事情。 您最有可能使用过

System.out.println(teamsToProgress());

相反,您应该已经在teamsToProgress()完成了teamsToProgress()

System.out.println(Arrays.toString(teamsToProgress()));

在第一种情况下,您将打印数组的toString()方法返回的内容(某些类型信息和哈希码),在第二种情况下,您将打印数组的内容。

通常,从teamsToProgress()删除System.out.println(...)并打印返回值是一个好主意-或使返回值void ,在这种情况下,请为该方法找到一个更好的名称,例如void printTeamsToProgress() ,因此该方法的意图变得更加清晰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM