繁体   English   中英

Java-删除选定字符串后首次出现的char

[英]Java - remove first occurence of char after selected string

在Java的String文本中,如何删除给定String之后的char的所有首次出现? 例如:

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

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

预期结果:

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

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

在这种情况下,您要尝试匹配字符串cc之后的d并将其删除(将其替换为空白字符串)。

正则表达式"(cc.*?)d"将匹配cc之后的第一个d ,然后,由于省略量词 *? ,将不匹配d后续实例。

您可以使用捕获组(...) )记录d之前的内容,然后在替换字符串中进行引用。

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

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

int ddIndex = s.indexOf("dd");
if (ddIndex != -1) {
 int cIndex = s.indexOf('c', ddIndex);
 if (cIndex != -1) {
   s = new StringBuilder(s).deleteCharAt(cIndex).toString();
 }
}
 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;}
      }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM