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

Java 从字符串中删除指定字符,java,string,Java,String,我对使用String.replaceAll函数感兴趣,该函数允许我删除字符串的特定序列 String.replaceAll的功能是否替换给定给的字符串序列的第一次出现,以及替换?我的假设是肯定的 要替换特定的子字符串,我将如何替换所提供字符串中的字符 String sentence = "@red@@blue@@green@Hello@reset@"; 在本例中,在运行字符串时,要删除的子字符串是从@到另一个@。替换 String.replaceAll("@**PATTERN HERE SO

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

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

  • 要替换特定的子字符串,我将如何替换所提供字符串中的字符

    String sentence = "@red@@blue@@green@Hello@reset@";
    
    在本例中,在运行
    字符串时,要删除的子字符串是从
    @
    到另一个
    @
    。替换

    String.replaceAll("@**PATTERN HERE SO NAME WON"T MATTER**@", "");
    
  • 编辑 看到replace和replaceAll会使这两个不同之处变得不同,因为它们是使用regex的。 我关心的是删除给定表达式的第一个匹配项,即

    String sentence = "@red@@blue@@green@Hello@reset@";
    
    必须运行4次才能将“Hello”作为字符串的剩余成员

    例如: 运行1-replaceFirstOccurrence(@regex@,“”)

    运行2-replaceFirstOccurrence(@regex@,“”)

    运行3-replaceFirstOccurrence(@regex@,“”)

    运行4-replaceFirstOccurrence(@regex@,“”)


    使用字符串的标准方法replaceAll(字符串正则表达式,字符串替换)

    例如:
    “@some chars@”.replaceAll(“@[^@]*@”,“@”)

    回答这个问题其实非常简单,但正则表达式是最难的部分

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

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


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

    但是replace-不支持正则表达式。我还需要@any length/character@表达式的模式,在这个主题上不是很好。我想他也想删除@symbols,所以第二个参数应该是
    @waxtah我在页面上添加了一个编辑,看看底部。基本上总结了我所需要的,因为replaceAll将核化每次出现的整个字符串,而不是单独删除它。请添加一个示例。人们对你到底想要什么感到困惑。@ErickG.Hagstrom我添加了一个example@nolexa请仔细再看一遍字符串,每种颜色都受@color@. 相邻的颜色看起来像@color@@color@,因此Hello确实是最后一个。我相信他希望删除@与其后面的@之间的所有内容,因此在他的测试字符串中
    @red@@blue@@green@Hello@重置@
    ,只剩下
    你好
    。@KyleJ您的示例字符串是“@red”@@blue@green@Hello@reset@”“不是吗“@red@@blue”@@green@Hello@重置@。你看到区别了吗?绿色周围的标记不平衡。请注意。你的例子让人困惑。
    System.out.println(sentence); --> "@blue@@green@Hello@reset@"
    
    System.out.println(sentence); --> "@green@Hello@reset@"
    
    System.out.println(sentence); --> "Hello@reset@"
    
    System.out.println(sentence); --> "Hello"