簡體   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