ArrayList:在String元素中获取String元素?

时间:2015-02-20 23:49:25

标签: java arraylist

我这里有一个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的相似性。

2 个答案:

答案 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"