我这里有一个ArrayList,它包含X个String元素,这些元素也包含自己的X个String元素。就这样:
[ [ c, in, h, i, t , n , at, Th, t, th, ha, e , he, ca],
[ c, t , m, sa, o, n , at, s, Th, t, th, ma, e , he, ca, on],
[ a, b, in, i, bl, gs, s , an, et, n , la, Pi, ke, nk, ig, a ] ]
我需要在元素中获取特定元素。例如[0][0]
的列表为c
,[0][1]
为in
等等...... List.get()
似乎不适合我。我不确定这样做的正确方法是什么。我在另一个例子中看到使用List.get(0)[0]
,但它不适合我。
"The type of the expression must be an array type but it resolved to String"
时,Eclipse会说List.get(0)[0]
。所以我尝试List.toArray()
没有帮助。
修改
HashSet<String> shingleTrimSet = new HashSet<String>();
ArrayList<String> shingleArrayList = new ArrayList<String>();
System.out.println("\nSorted Shingles:");
for(int i = 0; i < lineCount; i++){
shingleTrimSet.clear();
for(int idx = 0, jdx = 1; idx+1 < lines[i].length(); idx++, jdx++){
shingleTrimSet.add( lines[i].substring( idx, jdx+1 ) );
}
shingleArrayList.add(i, shingleTrimSet.toString() );
}
System.out.println( shingleArrayList.get(0).get(0) );
现在我只想尝试在打印行中获取特定元素。我计划编写一个for循环,用于查找从一个元素到另一个元素的匹配子串。我正在做Jaccard的相似性。
答案 0 :(得分:0)
如果你的意思是你有一个字符串列表List<List<String>> test
,那么test.get(0).get(0)
将返回第一个子列表中的第一个字符串。
答案 1 :(得分:0)
根据你所说的,听起来你想要分裂你的字符串。给定初始化变量 strings 声明为:
ArrayList<String> strings;
以下代码可能符合您的需求:
for (String s: strings) {
String[] parts = s.split(",");
String part2 = parts[1].trim(); // "in" for your first row
}
或者您可能希望将拆分字段收集到字符串数组列表中:
ArrayList<String[]> rows = new ArrayList<String[]>();
for (String s: strings) {
String[] fields = s.split(",");
for (int i = 0; i < fields.length; i++)
fields[i] = fields[i].trim();
rows.add(fields);
}
您现在可以按照原定的目的访问:
String row1field2 = rows.get(0)[1]; // "in"