读取stdin并创建一个字符串数组

时间:2015-09-22 16:45:57

标签: arrays

我正在尝试从标准输入读取名称并创建一个字符串数组。但是当出现空行时,也会进入我不想要的阵列。这是代码:

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

public class Read {
   public static void  main(String args []) throws IOException{
   BufferedReader reader =new BufferedReader(new inputStreamReader(System.in));
   String str;
   ArrayList<String> lines = new ArrayList<String>();
   while((str = reader.readLine()) != null){
      lines.add(str);
   }
   String[] linesArray = lines.toArray(new String[lines.size()]);

   for (String input: linesArray){
      System.out.println(input);
   }
  }
}

INPUT:

John
Mike

dasy
egor

我调试它,我看到数组看起来像:

[0] String .. "John"
[1] String .. "Mike"
[2] Striing.. ""
[3] String .. "dasy"
[4] String .. "egor"
[5] String .. ""

任何人都可以帮我修理一下吗? 还有一些原因我没有得到任何输出,这意味着它没有终止。

1 个答案:

答案 0 :(得分:0)

在添加

之类的行之前,尝试获取str的字符串长度
while((str = reader.readLine()) != null){
     if str.lenght() > 0 {
       lines.add(str);
     }
 }