如何从字符串中删除指定的字符串

时间:2013-05-09 01:58:29

标签: java string replace delimiter

好的,所以我正在尝试创建一个带2个字符串的方法,第二个字符串参数是要从第一个字符串参数中删除的字符串。我无法弄清楚我的代码有什么问题?有帮助吗?感谢。

我正在尝试做的例子:如果你传入“a,b,c”作为第一个参数而“,”作为第二个参数,你会得到“abc”。

public List<String> split(String string, String delimiter){
    //create and init arraylist.
    List<String> list = new ArrayList<String>();
    //create and init newString.
    String newString="";
    //add string to arraylist 'list'.
    list.add(string);
    //loops through string.
    for(int i=0;i<string.length();i++){
        //stores each character from string in newString.
        newString += string.charAt(i);

        }
    newString.replace(delimiter, "");
    //remove string from arraylist 'list'.
    list.remove(string);
    //add newString to arraylist 'list'.
        list.add(newString);


    return list;

3 个答案:

答案 0 :(得分:1)

非常简单,不确定你对这些列表做了什么,但根据你的措辞问题,如果你想要的只是来自abc的{​​{1}},那就可以了......

a,b,c

答案 1 :(得分:1)

根据方法名称,返回类型和参数名称判断,您似乎正在尝试重新发明轮子 - 您只需要一行:

public List<String> split(String string, String delimiter){
    return Arrays.asList(string.split("\\" + delimiter));
}

我把反斜杠放在那里,以防分隔符本身是一个正则表达式,就像一个点。

答案 2 :(得分:0)

public List<String> split(String str, String delimiter){
    //Is the List of strings mandatory? Or is it part of a solution
    //that didn't originally have to be so?

    String[] temp;
    List<String> newStrings=new ArrayList<String>(); 

    //The answer was split(String regex) all along!
    temp = str.split(delimiter);

    for(int i=0; i<temp.length; i++){
        newStrings.add(temp[i]);
    }

    return newStrings;
}

}

这将产生您所需的规格,但要注意这将包含空格作为单独的字符串。如果您要求它排除空格,我会更新。