Java 给出奇怪结果的字符串数组的Return语句
我正在创建一个字符串数组,并使用System.out.println打印数组中的值。所有这些都很好,并按预期工作,返回[South Africa,England],但除非我包含一个return语句,否则代码不会编译,但return语句只是转储了一堆垃圾“[Ljava.lang.String;@85bdf6”。有没有办法将System.out.println和return语句组合起来,使它们做同样的事情,我只有[南非、英国]出现了吗Java 给出奇怪结果的字符串数组的Return语句,java,arrays,string,return,system.out,Java,Arrays,String,Return,System.out,我正在创建一个字符串数组,并使用System.out.println打印数组中的值。所有这些都很好,并按预期工作,返回[South Africa,England],但除非我包含一个return语句,否则代码不会编译,但return语句只是转储了一堆垃圾“[Ljava.lang.String;@85bdf6”。有没有办法将System.out.println和return语句组合起来,使它们做同样的事情,我只有[南非、英国]出现了吗 public String[] teamsToProgre
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
的含义。这是因为您有String[]
作为返回类型。将其更改为void
,它将很好地编译。您可以读取“垃圾”[Ljava.lang.String;@85bdf6
的意思。这是因为您将String[]
作为返回类型。将其更改为void
,它将很好地编译。您可以读取“垃圾”[Ljava.lang.String;@85bdf6
的意思。这是因为您有String[]
作为返回类型。将其更改为void
,它会编译得很好。您可以读取“垃圾”[Ljava.lang.String;@85bdf6
的意思
但是return语句只是转储了一堆垃圾“[Ljava.lang.String;@85bdf6”
这不是return语句,这是处理返回值的方法。
很可能你用过
System.out.println(teamsToProgress());
相反,您应该做您在teamsToProgress()中已经做过的事情
System.out.println(Arrays.toString(teamsToProgress()));
在第一种情况下,打印数组的toString()
方法返回的内容(一些类型信息和哈希代码),在第二种情况下,打印数组的内容
通常,最好从teamsToProgress()
中删除System.out.println(…)
,然后打印返回值,或者将返回值设置为void
,在本例中,为方法找到更好的名称,如void printTeamsToProgress()
,因此该方法的意图变得更加清晰
但是return语句只是转储了一堆垃圾“[Ljava.lang.String;@85bdf6”
这不是return语句,这是处理返回值的方法。
很可能你用过
System.out.println(teamsToProgress());
相反,您应该做您在teamsToProgress()中已经做过的事情
System.out.println(Arrays.toString(teamsToProgress()));
在第一种情况下,打印数组的toString()
方法返回的内容(一些类型信息和哈希代码),在第二种情况下,打印数组的内容
通常,最好从teamsToProgress()
中删除System.out.println(…)
,然后打印返回值,或者将返回值设置为void
,在本例中,为方法找到更好的名称,如void printTeamsToProgress()
,因此该方法的意图变得更加清晰
但是return语句只是转储了一堆垃圾“[Ljava.lang.String;@85bdf6”
这不是return语句,这是处理返回值的方法。
很可能你用过
System.out.println(teamsToProgress());
相反,您应该做您在teamsToProgress()中已经做过的事情
System.out.println(Arrays.toString(teamsToProgress()));
在第一种情况下,打印数组的toString()
方法返回的内容(一些类型信息和哈希代码),在第二种情况下,打印数组的内容
通常,最好从teamsToProgress()
中删除System.out.println(…)
,然后打印返回值,或者将返回值设置为void
,在本例中,为方法找到更好的名称,如void printTeamsToProgress()
,因此该方法的意图变得更加清晰
但是return语句只是转储了一堆垃圾“[Ljava.lang.String;@85bdf6”
这不是return语句,这是处理返回值的方法。
很可能你用过
System.out.println(teamsToProgress());
相反,您应该做您在teamsToProgress()中已经做过的事情
System.out.println(Arrays.toString(teamsToProgress()));
在第一种情况下,打印数组的toString()
方法返回的内容(一些类型信息和哈希代码),在第二种情况下,打印数组的内容
通常,最好从teamsToProgress()
中删除System.out.println(…)
,然后打印返回值,或者将返回值设置为void
,在本例中,为方法找到更好的名称,如void printTeamsToProgress()
,因此该方法的意图变得更加清晰。除非我包含一个返回语句,否则代码不会编译-当您的方法的返回类型不是void时通常会出现这种情况。您希望该方法将数组返回给它的调用方还是只打印数组?除非我包含一个返回语句,否则代码不会编译MENT
-当您的方法的返回类型不是void时,通常会出现这种情况。您希望该方法将数组返回给其调用方还是只打印数组?除非我包含一个返回语句,否则代码不会编译-当您的方法的返回类型不是void时,通常会出现这种情况。是否希望该方法返回将数组返回给它的调用者还是只打印数组?除非我包含一个返回语句,否则代码不会编译-当您的方法的返回类型不是void时通常会出现这种情况。您希望该方法将数组返回给它的调用者还是只打印数组?