我的目标是将JTextArea中的文本添加到ArrayList的ArrayList中,这样每一行输入的文本都被保存为ArrayList,并将该行中的单词保存为该行ArrayList中的元素。我有一个想法,如何存储输入文本的每一行作为数组列表中的一个元素,但不知道如何拥有数组列表的数组列表。有人能给我指个方向吗?我想创建一个2D数组列表,我想这样做:
ArrayList[][] poem = new 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数组列表,其中每个单词输入到一个JTextArea将被添加到它自己的单元格内的2D数组列表。
你的问题不一定是JTextArea
特定的,所以我的答案不会(我假设你知道如何从JTextArea
获得字符串)。提示:http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextArea.html) .
这是一种将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
以下作品
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)));
}