我的目标是将文本从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中的自己的单元格中。
答案 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)));
}