从String中删除某些信息时,数组超出绑定异常

时间:2015-02-22 21:04:46

标签: java for-loop arraylist replace

我的ArrayList包含String。我想遍历此ArrayList,获取所有String并查找它们是否包含某组字符然后将其删除。

我的意思的例子:在String“你好,我的名字是Bobby”我想删除“嗨,我的名字是”,只是保留“Bobby”。

这是我的功能:

private ArrayList<String> epurateInformation(ArrayList<String> list) {
    String[] potentialThreat = {"Pret : ", "Nom de l'Album : ", "Style : ", "Date : ", "Nom de la piste : ", "Propriétaire : ", "Information : "};

    for(String s : list) {
        for(int i = 0; i <= potentialThreat.length; i++) {
            System.out.println(potentialThreat[i]);
            //The error is right below here
            if(s.contains(potentialThreat[i])) {
                s.replace(potentialThreat[i], "");
            }
            cdInformation.add(s);
        }
    }

    return list;
}

它给了我一个java.lang.ArrayIndexOutOfBoundsException

我尝试将 potentialThreat.length 替换为固定的int(按7,6和1),但它仍然会给我这个错误。

如果您需要更多信息,请告诉我们。如果您对如何运行有另一个想法也让我知道。感谢

1 个答案:

答案 0 :(得分:1)

数组基于零,你需要&lt;不是&lt; = so:

private ArrayList<String> epurateInformation(ArrayList<String> list) {
    String[] potentialThreat = {"Pret : ", "Nom de l'Album : ", "Style : ", "Date : ", "Nom de la piste : ", "Propriétaire : ", "Information : "};

    for(String s : list) {
        for(int i = 0; i < potentialThreat.length; i++) {
            System.out.println(potentialThreat[i]);
            //The error is right below here
            if(s.contains(potentialThreat[i])) {
                s.replace(potentialThreat[i], "");
            }
            cdInformation.add(s);
        }
    }

    return list;
}