2016-07-14 51 views
3

我是新來的java,我正在做一些練習來學習。我一直在處理數組,並且已經能夠打印出我的第一個數組。但第二個不打印任何東西,只是想知道我出錯的地方,非常感謝。在java打印和返回數組

package Justice; 

import java.util.Arrays; 

class ArrayDemo { 
    public static void main(String[] args) { 
    int[] anArray; 

    anArray = new int[10]; 

    anArray[0] = 100; 
    anArray[1] = 200; 
    anArray[2] = 300; 
    anArray[3] = 400; 
    anArray[4] = 500; 
    anArray[5] = 600; 
    anArray[6] = 700; 
    anArray[7] = 800; 
    anArray[8] = 900; 
    anArray[9] = 1000; 
    System.out.println (Arrays.toString(anArray)); 

} 


public static String[] hello(String[] args) { 
    String[] myArray; 


    myArray = new String[5]; 
    myArray[0] = "hello"; 
    myArray[2] = "world"; 

    System.out.println(Arrays.toString(myArray)); 
    return (myArray); 

} 
+4

如果您從不打電話給'hello',應該如何打印?) – SomeJavaGuy

回答

1

只有當你從shell中運行Java類

被調用。

如果你想打電話

hello(String[] args) 

您必須在主法明確地調用它。您可以添加您的第一個print語句下面的行:

hello(null); 
+0

最好的答案是因爲它解釋了爲什麼解決方案有效,而不是簡單地糾正代碼。 – nhouser9

+0

是的,謝謝,只是想知道null是什麼,還有什麼我可以放在括號中 –

+0

你可以在括號中放入一個'String []'或'null'類型的對象。 'null'意味着你不會傳遞任何對象給方法。在你的情況下,這並不重要,因爲你不使用給定的參數。因此,你可以像'public static String [] hello()'一樣定義你的方法,那麼你不能傳遞任何東西給方法。 'public static void main(String [] args)'中的「args」包含啓動jvm時使用的參數。 –

0

請嘗試deepToString(Object[])方法,而不是toString(args)

您可以嘗試使用方法deepToString(Object[])來顯示該數組的所有內容。

String [] arr = new String[3]; 
arr[0]="asdf"; 
arr[1]="asdf"; 
System.out.println(Arrays.deepToString(arr)); 

將打印輸出等爲

[asdf, asdf, null] 

另一種方式做,這是... 你也可以遍歷數組在服用長度在for循環一個標準。

for(int i=0 i<anArray.length;i++) 
System.out.println(anArray[i]); 

感謝您

0

粘貼此System.out.println(hello(args));後的System.out.println(Arrays.toString(anArray));

會給你輸出:[hello, null, world, null, null]

0

只需添加到您的代碼

package Justice; 

import java.util.Arrays; 

class ArrayDemo { 
    public static void main(String[] args) { 
    int[] anArray; 

    anArray = new int[10]; 

    anArray[0] = 100; 
    anArray[1] = 200; 
    anArray[2] = 300; 
    anArray[3] = 400; 
    anArray[4] = 500; 
    anArray[5] = 600; 
    anArray[6] = 700; 
    anArray[7] = 800; 
    anArray[8] = 900; 
    anArray[9] = 1000; 
    System.out.println (Arrays.toString(anArray)); 

    // This is the method call 
    hello(null);    // You don't need the 'String[] args' in your method because you've not used the arguments 


} 


public static String[] hello(String[] args) { 
    String[] myArray; 


    myArray = new String[5]; 
    myArray[0] = "hello"; 
    myArray[2] = "world"; 

    System.out.println(Arrays.toString(myArray)); 
    return (myArray); 

} 
0

只要改變你的main()這樣:

class ArrayDemo { 
public static void main(String[] args) { 

int[] anArray; 

anArray = new int[10]; 

anArray[0] = 100; 
anArray[1] = 200; 
anArray[2] = 300; 
anArray[3] = 400; 
anArray[4] = 500; 
anArray[5] = 600; 
anArray[6] = 700; 
anArray[7] = 800; 
anArray[8] = 900; 
anArray[9] = 1000; 
System.out.println (Arrays.toString(anArray)); 

ArrayDemo obj = new ArrayDemo(); 
obj.hello(); 
} 

,使hello()方法是這樣的:

public void hello() { 
String[] myArray; 


myArray = new String[5]; 
myArray[0] = "hello"; 
myArray[2] = "world"; 

System.out.println(Arrays.toString(myArray)); 
} 
+0

這很好,謝謝。只是想知道null是什麼,還有什麼我可以放在括號裏,再次感謝 –

+0

@samujoe - 我不太明白你在說什麼,你還在說什麼括號?我的錯!那麼你能否詳細說明你的查詢? –

+0

在這個方法中調用,,,, hello(null); –

0

public static String [] hello(String [] args)不被調用。它應該從public static void main()中調用。