我需要在程序中执行以下许多代码
int index=temp.lastIndexOf("\\n== External links ==\\");
System.out.println( temp.substring(index))
Indexof,substring,包含所以这些操作在stringbuffer或string中会更好吗?
如果是这样,你为什么要详细说明我?
答案 0 :(得分:2)
String.substring
不会创建新字符串,只会索引到原始字符串中,从而避免了复制字符串内容的成本。因此,如果您需要这样做,String
可能就足够了(并且使用起来更简单 - 尤其是StringBuffer
/ StringBuilder
没有contains
方法)。< / p>
OTOH你绝对不应该使用StringBuffer
因为它是同步的,这会带来性能损失 - 如果你使用的是Java5或更新版,请考虑StringBuilder
。
最后,唯一确定的方法是使用真实数据衡量您自己环境中的每个选项。
答案 1 :(得分:0)
当要执行大量字符串操作时,建议使用StringBuffer或StringBuilder,因为使用String会在“字符串常量池”中留下大量未引用的String对象。
此外,StringBuilder比StringBuffer更受欢迎(尽管它们具有完全相同的API)因为它的方法不是线程安全的(即同步),因此它们执行得更快。
答案 2 :(得分:0)
StringBuilder上没有contains
或StringBuffer。
indexOf和substring被委托给String本身。
StringBuffer和StringBuilder的连接速度更快,但是查看String:获取String类本身