2016-10-02 3 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

あなたがループのために必要があります: '(文字列名:namesout)について;' –

+0

はまた '' countNames(ヌル)であることに注意してください{System.out.printlnは(名)} 'null'は* strange * –

+0

警告は非表示にすることを目的としたものではありません。あなたが開いているすべてのリソースを閉じてください。java7以上では、[リソースを試してみる](https://docs.oracle.com) com/javase/tutorial/essential/exceptions/tryResourceClose.html)のステートメントです。 – A4L

答えて

1

まず、countNamesメソッドは、パラメータが必要なので、メソッドの宣言にそのString namesブツは削除されません。そして、メソッド呼び出しでnullという単語を削除します。あなたは私があなたに両方の方法を紹介するJava 8

使用している場合

さて、あなたはforループを使用するか、新しいストリームAPIのメソッドのいずれかを使用することができます。 Forループ

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

println方法を自動的に印刷したい文字列の最後に改行文字を追加します。

ストリームAPI:

Arrays.stream(namesout).forEach(System.out::println); 
関連する問題