如何从文件中扫描文本并保存到数组Java中

时间:2016-03-25 05:15:49

标签: java input java.util.scanner

我正在尝试从文本文件中读取字符串,只要有空格就拆分字符串,并将每个字存储在字符串数组中:

例如。输入"Hello i am a sentence"

输出[Hello, i, am, a, sentence]

我目前有以下

Scanner sc = null;
      try
      {
        sc = new Scanner(new FileReader(args[0]));
        LinkedList<String> list = new LinkedList<String>();
        String str = sc.nextLine();
        for(String i:str.split(" ")){
           list.add(i);
        }
        String[] arguments = list.toArray(new String[list.size()]);
        System.out.println(arguments);
      }
      catch (FileNotFoundException e) {}
      finally
      {
          if (sc != null) sc.close();
      }

但我无法将列表转换为数组,我得到以下输出

[Ljava.lang.String;@45ee12a7

2 个答案:

答案 0 :(得分:2)

您不需要将其List再次转换为正常Array,只需这样做,让我们说它是您的字符串

 String string = "Hello i am a sentence";

您可以执行

 String[] array = string.split("\\s", -1);

String[] array = string.split(" ", -1);

两者都给出相同的结果!

答案 1 :(得分:0)

尝试使用for循环来填充数组:

String[] arguments = list.toArray(new String[list.size()]);
for (int i = 0; i < list.size(); i++) {
    arguments[i] = list.get(i);
}

使用foreach迭代并打印数组元素:

for (String arg: arguments) {
    System.out.println(arg);
}