2017-02-22 9 views
-5

Моя программа будет дано это как вход:Как читать строки из пользователя с пробелами

1 T T T T T F T T F F 
Bobb, Bill 123456789 T T T T T F T T F F 
Lou, Mary 974387643 F T T T T F T T F F 
Bobb, Sam 213458679 F T F T f t 6 T F f 
Bobb, Joe 315274986 t t t t t f t t f f 
ZZZZ 

Код:

BufferedReader br = new BufferedReader (new InputStreamReader (System.in)); 
StringTokenizer st = new StringTokenizer (br.readLine()); 
String key = st.nextToken(); 

Как я прочитал первую строку в виде одной строки ?

Я пробовал использовать токенизатор строки, но только захватывает 1 и отбрасывает остальные. Любая помощь будет оценена по достоинству.

+3

ява! = Javascript – shmosel

+0

Мы не можем помочь вам, если вы не покажете свой код. – shmosel

+2

Если вам просто нужна линия в целом, почему вы даже используете токенизатор? –

ответ

2

Просто используйте это.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
String line; 
while((line = br.readLine())!=null){ 
    // you can stop taking input when input line is empty 
    if(line.isEmpty()){ 
     break; 
    } 
    System.out.println(line); // printing the input line 
} 
br.close(); 

См live demo

+0

, чтобы эта программа продолжала считывать ввод от пользователя до тех пор, пока на клавиатуре не будет введен вход? – FlyingBurrito

+0

@FlyingBurrito да, вы правы. Ваша проблема решена? Если бы мой ответ помог вам, вы можете принять его. –

+0

спасибо, если я хочу, чтобы эта программа завершилась, если задать вход «ZZZZ» или «zzzz», я бы изменил строку «if (line.isEmpty())« to »if (строка ==« ZZZZ »&&« zzzz ")" – FlyingBurrito

0

все аргументы хранятся в массиве args.

StringBuilder input = new StringBuilder(); 
for (int i = 0; i < args.length; i++) { 
     input.append(args[i]+" "); 
} 
0

Вы можете использовать try-with-resources, чтобы уменьшить количество строк. Кроме того, вы не можете забыть закрыть поток при этом.

На основании ответа Васи Ахмада

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class Main { 
    public static void main(String[] args) throws IOException{  
     String line;   
     try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))){ 
      while((line = br.readLine()) != null){     
       if(line.isEmpty()){ // Stop reading 
        break; 
       }     
       // Print line 
       System.out.println(line); 
      } 
     } 
    } 
} 
+0

Да, я сделал :-) Я не совсем уверен, что смогу следовать. Что вы имеете в виду с _overwrite предыдущей линией? – mcuenez