如何从具有空格的用户读取字符串

时间:2017-02-22 20:37:40

标签: java string

我的程序将作为输入:

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 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

所有参数都存储在args数组中。

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

答案 2 :(得分:0)

您可能希望使用try-with-resources来减少行数。此外,这样做时你不能忘记关闭流。

基于Wasi Ahmad的回答

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);
            }
        }
    }
}