-1

我需要在程序中做很多以下代码

int index=temp.lastIndexOf("\\n== External links ==\\");
        System.out.println( temp.substring(index))

Indexof,substring,contains 所以这些操作在字符串缓冲区或字符串中会更好吗?

如果是这样,你为什么能详细说明我?

4

3 回答 3

2

String.substring不创建新字符串,只索引原始字符串,从而避免复制字符串内容的成本。因此,如果这就是您需要做的所有事情,String可能就足够了(而且使用起来更简单 - 特别是因为StringBuffer/StringBuilder没有contains方法)。

OTOH 您绝对不应该使用StringBuffer它,因为它是同步的,这会带来性能损失 -StringBuilder如果您使用的是 Java5 或更新版本,请考虑。

最后,您知道的唯一可靠方法是使用真实数据在您自己的环境中衡量每个选项。

于 2012-05-14T08:48:32.473 回答
0

当要执行大量字符串操作时,建议使用 StringBuffer 或 StringBuilder 而不是 String,因为使用 String 会在“字符串常量池”中留下大量未引用的 String 对象。

此外,StringBuilder 优于 StringBuffer(尽管它们具有完全相同的 API),因为它的方法不是线程安全的(即同步的),因此它们执行得更快。

于 2012-05-14T08:47:20.883 回答
0

StringBuilder 上没有contains或 StringBuffer。indexOf 和 substring 被委托给 String 本身。StringBuffer 和 StringBuilder 的连接速度更快,但对于查看 String:获取 String 类本身

于 2012-05-14T08:49:22.103 回答