2016-03-22 10 views
1

コンソールから複数の行をロードしたい。私はコンソールにテキストを貼り付けますが、このテキストにはより多くの行があります。最後の行は、\ nがないためロードしたくありません。コンソールに\ nを追加できません。貼り付けるとすぐに実行されるためです。もう一つの問題は、終わりを望んでいないということです。最後の行を期待して終了しません。Javaのコンソールから複数の行を読み込み、最後の行を発行する

 Scanner input = new Scanner(System.in); 
     List<String> lines = new ArrayList<String>(); 
     String lineNew; 

     while (input.hasNextLine()) { 
      lineNew = input.nextLine(); 
      System.out.println(lineNew); 
      lines.add(lineNew);   
     } 
+1

最後の行がロードされます。「戻る」を押すとその行がロードされます。 – Tom

答えて

0

あなたの入力が短すぎる場合は、チェックを追加してください。はいの場合は、中断してください。

import java.util.ArrayList; 
import java.util.List; 
import java.util.Scanner; 

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

     Scanner input = new Scanner(System.in); 
     List<String> lines = new ArrayList<String>(); 
     String lineNew; 

     while (input.hasNextLine()) { 
      lineNew = input.nextLine(); 
      if (lineNew.isEmpty()) { 
       break; 
      } 
      System.out.println(lineNew); 
      lines.add(lineNew); 
     } 

     System.out.println("Content of List<String> lines:"); 
     for (String string : lines) { 
      System.out.println(string); 
     } 
    } 
} 
+1

私は同意します、 'isEmpty()'が良いです。私はそれに応じて私の答えを変更します。 – PendingValue

+0

「あなたの入力が短すぎて、はいの場合は中断しますか?」という意味を説明できますか?私はあなたが終了条件として空の行を使用するつもりだったと思いますが、これはこの文からはっきりとは分かりません:) – Tom

-2

ctrl + z(ctrl + d)を押すと終了します。

関連する問題