Java:从StringBuilder中删除String

use*_*387 11 java string stringbuilder

我想从StringBuilder中删除String

String aaa = "sample";
String bbb = "sample2";
String ccc = "sample3";
Run Code Online (Sandbox Code Playgroud)

在另一部分

StringBuilder ddd = new StringBuilder();
ddd.append(aaa);
ddd.append(bbb);
ddd.append(ccc);
Run Code Online (Sandbox Code Playgroud)

我想检查StringBuilder ddd是否包含String aaa并将其删除

if (ddd.toString().contains(aaa)) {
    //Remove String aaa from StringBuilder ddd
}
Run Code Online (Sandbox Code Playgroud)

那可能吗?或者还有其他方法吗?

Evg*_*eev 11

试试这个

    int i = ddd.indexOf(aaa);
    if (i != -1) {
        ddd.delete(i, i + aaa.length());
    }
Run Code Online (Sandbox Code Playgroud)


gre*_*r89 5

试试这个

public void delete(StringBuilder sb, String s) {
    int start = sb.indexOf(s);
    if(start < 0)
        return;

    sb.delete(start, start + s.length());
}
Run Code Online (Sandbox Code Playgroud)