簡體   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