java - 指定确切的 StringBuilder 容量还是使用默认值?

标签 java string performance stringbuilder capacity

我有一个方法,其中我将 URL 作为字符串输入,并且我必须从中删除一个后缀并添加另一个后缀。因此,我使用 StringBuilder,但我想知道是否必须指定 Builder 的确切容量,还是依赖默认值16,这在我的所有情况下都不够,因此容量将始终在代码中扩展。?

我的代码是这样的:

private String constructString(final String url, final String suffixToRemove, final String suffixToAdd) {
        StringBuilder result = new StringBuilder(url.length() - suffixToRemove.length() + suffixToAdd.length());
        .....
    }

我想确定放置构建器的默认容量或放置通过获取三个字符串的 .length 构造的确切容量是否会更快。 String.length 操作速度慢吗?

最佳答案

你可以这样做:

final int len = url.length() - suffixToRemove.length();
final StringBuilder sb = new StringBuilder(url);
sb.setLength(len);
return sb.append(suffixToAdd).toString();

关于java - 指定确切的 StringBuilder 容量还是使用默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32862262/

相关文章:

java - 使用 JProfiler 优化 JVM

使用大量内存的 Java 应用程序。使用-Xmx?

java - 在此代码中如何选择一种方法而不是另一种方法?

java - AspectJ Weaver setter 模式问题

python - 如何比较两个列表?

c - 不同程序中的相同阵列

android - Unity 背景 Sprite 会影响 fps

java - 单击时如何从微调器下拉列表中创建第二个 Activity ?

java - 防止两个线程程序中的死锁

Java .split ("|") 不工作