如何将子串连接重构为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的代码如何?当我想一个接一个地执行几次子串时?
答案 0 :(得分:3)
如果您的问题是“我如何重复删除字符串中的子字符串”,您可以尝试这样的事情:
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,然后操纵其内容。
答案 1 :(得分:1)
这样的事情可能是:
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)));
答案 2 :(得分:1)
你的意思是这样的吗?或者我明白了吗?
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()
答案 3 :(得分:0)
尝试
String line = "this is my start and my end string";
int start = line.indexOf("start");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(line.substring(0, start));
stringBuilder.append(line.substring(start + 5));
int end = line.indexOf("end");
stringBuilder.append(line.substring(0, end));
stringBuilder.append(line.substring(end + 3));
System.out.println("StringBuilder : "+stringBuilder.toString());
答案 4 :(得分:0)
如果我没有错,StringBuilder拥有它自己的indexOf和子串实现。这个问题的主要关注点似乎是放弃了String的使用,而StringBuilder的主要功能仍然是连接。
所以http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html可以帮助你找到相关的方法,你可以继续使用StringBuilder和.append()方法以及你的字符串查找和子字符串方法。