【问题标题】:Print Index of ArrayList<String []>ArrayList<String []> 的打印索引
【发布时间】:2017-04-05 01:16:44
【问题描述】:

我有一个字符串数组的 ArrayList。数组本身应该保存传入的文本文件的每个单词。然后,数组存储在 ArrayList 的索引中。由于某种原因,它不起作用。每个数组只存储一个单词。我想要完成的是,当我调用 ArrayList 的索引时,它应该打印出存储在数组中的文本文件中的所有单词。有人可以看看这个并指出我正确的方向吗?我非常感谢任何反馈。提前谢谢你。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException{
        String [] files = {"C:\\Users\\Kelvin\\Documents\\Hello.txt", "C:\\Users\\Kelvin\\Documents\\Mountain.txt", "C:\\Users\\Kelvin\\Documents\\Thanks.txt"};
        ArrayList<String[]> list =  new ArrayList<String[]>();
        BufferedReader reader;

        for(int i = 0; i < files.length; i++){
            reader = new BufferedReader(new FileReader(files[i]));
            Scanner in = new Scanner(reader.readLine());
            String [] words = null;
            while(in.hasNext()){
                String inputText = in.next();
                words = inputText.split("[ \n\t\r,.;:!?*--+(){}}]");
            }
            in.close();
            list.add(words);
        }
        System.out.println(Arrays.deepToString(list.toArray()));
    }
}

【问题讨论】:

  • 您必须在拆分后添加每个单词。
  • 这就是调试器的用途
  • 试试in.nextLine() 而不是in.next()。
  • 在words = inputText... 语句之后的while 循环中移动list.add(words);。
  • 请保留list.add(words);在while循环中。

标签: java arrays arraylist


【解决方案1】:

你在这里缺少这部分:

while (in.hasNext()) {
    String inputText = in.nextLine();//<----nextLine instead of next
    words = inputText.split("[ \n\t\r,.;:!?*--+(){}}]");
    list.add(words);//<----------Add your result to your List
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 2016-08-22
    • 2013-12-04
    相关资源
    最近更新 更多