2015-11-16 59 views
0

我對Java很新,所以請耐心等待。將數組傳遞給方法

我想知道如何能夠將一串字符串傳遞給一個新的方法,會問用戶一個問題,然後打印數組。然後我也希望用戶的輸入存儲在不同的陣列中,但我確信我可以自己做這部分。

的我認爲的代碼看起來應該是如下片段:

public static void birdarray() 
{ 
    String[] birds = {"Blue Tit", "Blackbrid", "Robin"}; 
} 

public static void wanttogetarrayinhere() 
{ 
    String question = print("What bird are you reporting?"); 
    print(birds); 

我希望在正確的方向輕推。

+0

方法需要接受類型的一個參數'的String []'('字符串...'會的工作爲好,但你應該明白[varargs](https://docs.oracle.com/javase/7/docs/technotes/guides/language/varargs.html)。 – Turing85

+0

public static void wanttogetarrayinhere(String [] birds){} –

+1

注意:由於您在'String'和'String []'上調用它,所以需要重載'print'方法 –

回答

1

只需將其添加爲參數:

public static void wanttogetarrayinhere(String[] arr) 
{ 
    String question = print("What bird are you reporting?"); 
    print(arr); 
} 

然後將所需的數組中傳遞,當你把它叫做:

String[] birds = {"Blue Tit", "Blackbrid", "Robin"}; 
wanttogetarrayinhere(birds); 

正如有人指出,你還需要一個重載的評論print()方法,具有用於String參數的重載和一個用於String[]參數,例如:

public static void print(String str) { 
    System.out.println(str); 
} 

public static void print(String[] arr) { 
    StringBuilder builder = new StringBuilder(); 
    for (int i=0; i<arr.length; i++) { 
     builder.append(arr[i]); 
     if (i<arr.length-1) 
      builder.append(", "); 
    } 
    System.out.println(builder.toString()); 
} 
+0

然後確保您正確調用函數:wanttogetarrayinhere(birds); – PunDefeated

+1

@PunDefeated好電話也包括,以及編輯我的答案:) – jonk

+0

@jonk這似乎通過傳遞數組完成工作 - 所以謝謝 - 但爲什麼我會得到[Ljava.lang.String; @ 139a55打印到我的屏幕而不是數組? – Overclock

0

你能做到這一點,以獲得陣列進入方法:

public static void wanttogetarrayinhere(String[] input){ 
     // then to print array out something like: 
     for (int i=0; i<input.length; i++){ 
     System.out.println(input[i]); 
    } 
    }