有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java替换所有悬空元字符

我有一个字符串,比如说1++++----2,我想用一个特定的字符串来替换++++----,比如说string。 我使用java函数replaceAll,但每次使用它时,它都会发出警告悬挂元字符

mystring.replaceAll("++++----", "string");

共 (4) 个答案

  1. # 1 楼答案

    逃逸+,这里只有第一个或全部不重要

    String str = "1+++---2";
    str = str.replaceAll("\\+\\+\\+---", "");
    System.out.println(str);
    

    输出:

    12
    

    或者使用replaceAll,因为它是用来:

    str = str.replaceAll("[+-]", "");
    
  2. # 2 楼答案

    replaceAll的第一个参数采用正则表达式,+在正则表达式中具有特殊意义。Escape+使其正常工作

    mystring.replaceAll("\\+\\+\\+\\+----", "string");
    
  3. # 3 楼答案

    您可以使用以下正则表达式:

    mystring.replaceAll("\\++-+", "string")
    

    因为+是一个正则字符,所以需要对其进行转义。因此在这里"\\++-+"中,第一部分\\+将与字符+字面匹配,第二部分+将与字符+的一个或多个组合匹配,其余部分是-+,将与一个或多个-匹配

  4. # 4 楼答案

    替换固定字符串时,需要一个replace函数:

    String mystring  = "1++++----2";
    System.out.println(mystring.replace("++++----", "string"));
    

    demo

    否则,您需要一个带有replaceAll的正则表达式

    System.out.println(mystring.replaceAll("[+]+-+", "string"));
    

    注意,您不需要在正则表达式字符类中转义+,这在Java中很方便