[英]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.