Java 如何在StringBuilder中连接子字符串?

Java 如何在StringBuilder中连接子字符串?,java,stringbuilder,Java,Stringbuilder,如何将子字符串连接重构为StringBuilder String line = "this is my start and my end string"; int start = line.indexOf("start"); line = line.substring(0, start) + line.substring(start + 5); int end = line.indexOf("end"); line

如何将子字符串连接重构为
StringBuilder

        String line = "this is my start and my end string";
        int start = line.indexOf("start");
        line = line.substring(0, start) + line.substring(start + 5);

        int end = line.indexOf("end");
        line = line.substring(0, end) + line.substring(end + 3);
            //result: this is my and my string";

使用StringBuilder时,相同的代码会是什么样子?当我想一个接一个地多次执行子字符串时?

类似的情况可能是:

    StringBuilder line = new StringBuilder("this is my **start** and my **end** string");
    int start = line.indexOf("start");
    line = new StringBuilder(line.substring(0, start).append(line.substring(start + 5)));

    int end = line.indexOf("end");
    line = new StringBuilder(line.substring(0, end).append(line.substring(end + 3)));

你是说像这样的?还是我理解错了

String line = "this is my start and my end string";
int start = line.indexOf("start");
int end = line.indexOf("end");
StringBuilder sb = new StringBuilder();
sb.append(line.substring(0, start);
sb.append(line.substring(start + 5);
sb.append(line.substring(0, end);
sb.append(line.substring(end + 3);
String result = sb.toString()
试一试

如果您的问题是“如何从字符串中重复删除子字符串”,您可以尝试以下操作:

StringBuilder line = new StringBuilder("this is my start and my end string");
int start = line.indexOf("start");
line.delete(start, start + 5);
int end = line.indexOf("end");
line.delete(end, end + 3);
String result = sb.toString()

创建StringBuilder一次,然后操作其内容。

如果我没有错的话,StringBuilder有自己的indexOf和子字符串实现。这个问题的主要关注点似乎是放弃了字符串的使用,StringBuilder的主要功能仍然是连接


因此可以帮助您找到相关的方法,您可以继续使用StringBuilder和.append()方法以及ur字符串查找和子字符串方法

您考虑过使用正则表达式吗?您已经声明了变量
start
两次谢谢,更正了。抱歉,这是从OP的原始帖子复制/粘贴的。
StringBuilder line = new StringBuilder("this is my start and my end string");
int start = line.indexOf("start");
line.delete(start, start + 5);
int end = line.indexOf("end");
line.delete(end, end + 3);
String result = sb.toString()