关于输入:如何从文件中扫描文本并保存到数组中 Java

How to scan text from a file and save into an array Java

本问题已经有最佳答案,请猛点这里访问。

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

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

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

我目前有以下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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();
      }

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

1
[Ljava.lang.String;@45ee12a7


你不需要把它变成List然后再转换成普通的Array,只要这样做,假设它是你的字符串

1
 String string ="Hello i am a sentence";

你可以做任何一个

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

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

两者都给出相同的结果!


尝试使用 for 循环来填充数组,如下所示:

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

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

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