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

时间:2016-02-24 17:13:56

标签: java string

我对使用String.replaceAll函数感兴趣,该函数允许我删除字符串的特定序列。

  1. String.replaceAll的功能是否取代了第一次出现的字符串序列,以及替换?我的假设是肯定的。

  2. 如果要替换特定的子字符串,我该如何替换提供的字符串中的字符?

    String sentence = "@red@@blue@@green@Hello@reset@";
    

    我要删除的子字符串是@到另一个@,在这种情况下,运行String.replace

    String.replaceAll("@**PATTERN HERE SO NAME WON"T MATTER**@", "");
    
  3. EDIT 看到replace和replaceAll会在两个差异之间产生,就像使用正则表达式一样。 我担心的是删除第一次出现的表达式,即

    的原始字符串
    String sentence = "@red@@blue@@green@Hello@reset@";
    

    必须运行4次才能将“Hello”作为String的剩余成员。

    实施例: 运行1 - replaceFirstOccurence(“@ regex @”,“”);

    System.out.println(sentence); --> "@blue@@green@Hello@reset@"
    

    运行2 - replaceFirstOccurence(“@ regex @”,“”);

    System.out.println(sentence); --> "@green@Hello@reset@"
    

    运行3 - replaceFirstOccurence(“@ regex @”,“”);

    System.out.println(sentence); --> "Hello@reset@"
    

    运行4 - replaceFirstOccurence(“@ regex @”,“”);

    System.out.println(sentence); --> "Hello"
    

2 个答案:

答案 0 :(得分:5)

使用String的标准方法 replaceAll(String regularExpression,String replacement)

例如: " @some chars @" .replaceAll(" @ [^ @] * @"," @@");

答案 1 :(得分:1)

好的回答这个问题实际上非常简单,但正则表达式很难实现。

感谢@waxtah回答这个问题的正则表达式。

使用String.replaceFirst(“@ [^ @] * @”,“”);

我能够实现我的目标。谢谢大家。