2016-10-02 110 views
1

製作了一個程序,根據用戶輸入計算並輸出用戶。我希望程序使用換行符將名稱顯示在另一個下面,但是堅持如何操作。代碼如下:爲字符串創建一個新行

所有的
package uk.ac.reading.cs2ja16.Glen.Stringtest; 
import java.util.Arrays; 
import java.util.Scanner; 

public class stringnames { 

    public static String[] countNames (String names) { 

     // Create Scanner object 
     @SuppressWarnings("resource") 
     Scanner names1 =new Scanner(System.in); 

     // Read a string 
     String read= names1.nextLine(); 

     // Split string with space 
     String numPeople[]=read.trim().split(" "); 

     System.out.println("The Number of names inputted is: "+ numPeople.length); 


     return numPeople; 
    } 


    public static void main(String[ ] args){ 

     System.out.println("Enter the amount of names you want(make sure you make space for each name):\n"); 
     String[] namesout = countNames(null); 
     System.out.println(Arrays.toString(namesout)); 
    } 
} 
+1

你需要一個for循環:'爲(字符串名稱:namesout){的System.out.println(名);}' – 2016-10-02 11:52:18

+0

還要注意的是,在'countNames(空)' 'null'是*奇怪的* – 2016-10-02 11:53:26

+0

警告並不意味着被壓制,請關閉所有打開的資源,使用java7及以上版本,就像使用[try-with-resource](https://docs.oracle)一樣簡單。 com/javase/tutorial/essential/exceptions/tryResourceClose.html)語句。 – A4L

回答

1

首先,countNames方法不需要參數,所以刪除String names啄在方法聲明。在您的方法調用中刪除單詞null。現在

,你可以使用一個for循環,或使用新的API流的方法之一,如果你使用的是Java 8

,我會告訴你兩者兼得。

For循環:

for (String name: namesout) { 
    System.out.println(name); 
} 

println方法在要打印字符串的結尾會自動添加一個新行字符。

流API:

Arrays.stream(namesout).forEach(System.out::println);