【问题标题】:How to remove a specified string from a string如何从字符串中删除指定的字符串
【发布时间】:2013-05-09 01:58:29
【问题描述】:

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

【问题讨论】:

  • 您能举个例子说明您正在尝试做什么吗?
  • 请添加标签以表明这是什么语言。
  • 如果a,b,c 是一个字符串,而你想要字符串abc,你为什么不直接做yourString.replaceAll(secondArg, "");
  • 为什么返回类型是List,不应该是String

标签: java string replace delimiter


【解决方案1】:

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

 public String split(String s1, String s2){
        return s1.replace(s2,"");
 }

【讨论】:

  • 这正是我在评论中的内容.....我没有发布答案,因为它返回 string 并且问题有 List
  • replace() 用少得多的代码实现相同的结果时,我觉得 OP 对列表的使用是多余的和不必要的。如果您觉得有帮助,请不要害怕改进 OP 的解决方案,干杯。
【解决方案2】:

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

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

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

【讨论】:

  • 那些循环带我走了一圈,很高兴我不是唯一一个:-)
【解决方案3】:
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;
}

}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多