将JTextArea的输入添加到ArrayLists的ArrayList

时间:2014-06-08 17:09:10

标签: java arraylist jtextarea

我的目标是将文本从JTextArea添加到ArrayLists的ArrayList中,这样输入的每行文本都保存为ArrayList,该特定行的单词保存为该行的ArrayList中的元素。我知道如何将输入文本的每一行存储为ArrayList中的元素,但不知道如何存储ArrayLists的ArrayList。任何人都可以指出我在正确的方向吗?我想创建一个2D ArrayList,并且正在考虑这样的事情:

ArrayList[][] poem = new ArrayList[][];

我正在考虑将包含每一行的ArrayList作为一个元素,但我希望将每一行作为一个单独的ArrayList包含它们各自的单词作为元素:

JTextArea txArea = new JTextArea();
String txt = txArea.getText();
String [] arrayOfLines = txt.split("\n");
ArrayList<String> linesAsAL = new ArrayList<String>();
for(String line: arrayOfLines){
  linesAsAL.add(line);
}

总而言之,我正在尝试创建一个2D ArrayList,其中输入到JTextArea的每个单词将被添加到该2D ArrayList中的自己的单元格中。

2 个答案:

答案 0 :(得分:1)

您的问题不一定是JTextArea - 具体,所以我的答案不会(我假设您知道如何从JTextArea获取字符串。提示:{{3 }})。

以下是将String转换为ArrayList<ArrayList<String>>的方法:

public static List<List<String>> linesToLinesAndWords(String lines) {
    List<List<String>> wordlists = new ArrayList<>();
    List<String> lineList = Arrays.asList(lines.split("\n"));
    for (String line : lineList) {
        wordlists.add(Arrays.asList(line.trim().split(" ")));
    }
    return wordlists;
}

看到你的代码之后,我还建议你学习Java。

答案 1 :(得分:1)

以下作品

String content = jta.getText(); //jta = Instance of JTextArea
List<List<String>> list = new ArrayList<ArrayList<String>>();
for (String line : content.split("\n"))
{
String words[] = line.split("\\s");
 list.add(new ArrayList<String>(Arrays.asList(words)));
}