代码之家  ›  专栏  ›  技术社区  ›  Annabelle

Java-删除选定字符串后第一次出现的字符

  •  -1
  • Annabelle  · 技术社区  · 7 年前

    String s = "Aaaaa bbb cc dd dddd cc ttt d";
    

    删除整个字符串中“cc”之后的第一个“d”。

    String s = "Aaaaa bbb cc d dddd cc ttt ";
    
    3 回复  |  直到 7 年前
        1
  •  3
  •   nbrooks    7 年前

    看看Java String#replaceAll 方法。它允许您提供与要替换的术语匹配的正则表达式,然后提供替换字符串。

    d 顺其自然 cc ,然后将其删除(用空白字符串替换)。

    正则表达式 "(cc.*?)d" 将匹配第一个 D 以后的任何地方 复写的副本 ,然后,因为 reluctant quantifier *? D

    你可以使用 capturing group ( (...) )注意到之前发生的事情 D ,然后在替换字符串中引用该字符串。

    因此,解决方案变得更加简单 string.replaceAll("(cc.*?)d", "$1") $1 是对组中捕获的文本的引用。

        2
  •  2
  •   Alchemy    7 年前

    如果您想要不使用正则表达式的简单性:

    int ddIndex = s.indexOf("dd");
    if (ddIndex != -1) {
     int cIndex = s.indexOf('c', ddIndex);
     if (cIndex != -1) {
       s = new StringBuilder(s).deleteCharAt(cIndex).toString();
     }
    }
    
        3
  •  1
  •   Himanshu    7 年前
     String s = "Aaaaa bbb cc dd dddd cc ttt d";
    int x=  s.indexOf("cc")+1;
        for(int i=x;i<s.length();i++)
       {
         if(s.charAt(i)=='d')
         {s.replace(s.charAt(i),'');break;}
          }