1

好的,所以我正在尝试创建一个采用 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;
4

3 回答 3

1

从方法名称、返回类型和参数名称来看,您似乎在尝试重新发明轮子——您只需要一行:

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

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

于 2013-05-09T02:35:21.797 回答
1

很简单,不知道你在用这些列表做什么,但根据你的措辞问题,如果你想要的只是abcfrom a,b,c,这会做......

 public String split(String s1, String s2){
        return s1.replace(s2,"");
 }
于 2013-05-09T02:16:51.507 回答
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;
}

}

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

于 2013-05-09T03:12:20.060 回答