Return 字符串数组的语句给出了奇怪的结果
Return statement for a string array giving strange result
我正在创建一个字符串数组并使用 System.out.println 打印数组中的值。一切正常,按预期工作,returning [South Africa, England] 但代码不会编译,除非我包含 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[]
作为 return 类型。将其更改为 void
,它会编译得很好。您可以阅读 'garbage' [Ljava.lang.String;@85bdf6
的含义。
but the return statement just dumps out a load of garbage "[Ljava.lang.String;@85bdf6"
那不是 return 语句,那是您对 return 值所做的。
很可能你用过
System.out.println(teamsToProgress());
相反,你应该做你在 teamsToProgress()
中已经做过的事情。
System.out.println(Arrays.toString(teamsToProgress()));
在第一种情况下,您打印数组的 toString()
方法 return 编辑的内容(一些类型信息和哈希码),在第二种情况下,您打印数组的内容.
通常,最好从 teamsToProgress()
中删除 System.out.println(...)
并改为打印 return 值 - 或者使 return 值 void
并且在这种情况下为该方法找到一个更好的名称,例如 void printTeamsToProgress()
,因此该方法的意图变得更加清晰。
我正在创建一个字符串数组并使用 System.out.println 打印数组中的值。一切正常,按预期工作,returning [South Africa, England] 但代码不会编译,除非我包含 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[]
作为 return 类型。将其更改为 void
,它会编译得很好。您可以阅读 [Ljava.lang.String;@85bdf6
的含义。
but the return statement just dumps out a load of garbage "[Ljava.lang.String;@85bdf6"
那不是 return 语句,那是您对 return 值所做的。 很可能你用过
System.out.println(teamsToProgress());
相反,你应该做你在 teamsToProgress()
中已经做过的事情。
System.out.println(Arrays.toString(teamsToProgress()));
在第一种情况下,您打印数组的 toString()
方法 return 编辑的内容(一些类型信息和哈希码),在第二种情况下,您打印数组的内容.
通常,最好从 teamsToProgress()
中删除 System.out.println(...)
并改为打印 return 值 - 或者使 return 值 void
并且在这种情况下为该方法找到一个更好的名称,例如 void printTeamsToProgress()
,因此该方法的意图变得更加清晰。