0Pricing
Java Academy · 课时

使用 StringBuilder 构建字符串

高效拼接

使用 StringBuilder 构建字符串 是 CoddyKit 上的免费 Java Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 4 节课。

可变的字符串构建器

StringBuilder 是一个可变的字符序列。与 String 不同,您可以直接修改其内容,因此它非常适合高效构建文本。

创建 StringBuilder

使用 new StringBuilder() 可以创建一个空的构建器,也可以传入初始文本,让构建器从已有内容开始。

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        StringBuilder named = new StringBuilder("Hello");
        System.out.println("empty length: " + sb.length());
        System.out.println("named: " + named);
    }
}

追加文本

append 方法会将内容添加到末尾。它接受字符串、数字、字符、布尔值等多种类型。

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("Count: ");
        sb.append(5);
        sb.append(' ');
        sb.append(true);
        System.out.println(sb);
    }
}

方法链式调用

append 会返回同一个构建器,因此可以在一个表达式中流畅地连续调用多个方法。

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("a").append("b").append("c").append(123);
        System.out.println(sb);
    }
}

在循环中构建

这是最主要的使用场景。在循环中追加内容,而不必每次都创建新对象,最后再统一转换一次。

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 10; i++) {
            sb.append(i).append(' ');
        }
        System.out.println(sb.toString().trim());
    }
}

转换为字符串

完成修改后,调用 toString(),即可从构建器中获取一个普通的不可变 String。

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("result");
        String finalText = sb.toString();
        System.out.println(finalText.toUpperCase());
    }
}

使用分隔符连接

您可以通过在各项之间追加分隔符来构建逗号分隔的列表,同时要谨慎处理最后一项。

public class Main {
    public static void main(String[] args) {
        String[] names = {"Ann", "Ben", "Cara"};
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < names.length; i++) {
            sb.append(names[i]);
            if (i < names.length - 1) {
                sb.append(", ");
            }
        }
        System.out.println(sb);
    }
}

读取长度

length() 会告诉您构建器当前包含多少个字符。每次追加内容后,它都会更新。

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("12345");
        System.out.println("Length: " + sb.length());
    }
}

访问字符

使用 charAt(index) 可以根据位置读取单个字符,这与使用 String 时一样。

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Coddy");
        System.out.println("First: " + sb.charAt(0));
        System.out.println("Last: " + sb.charAt(sb.length() - 1));
    }
}

容量与长度

构建器会维护一个内部缓冲区(容量),并自动扩展。知道最终大小时,可以传入初始容量,以减少调整大小的次数。

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder(100);
        sb.append("short");
        System.out.println("Length: " + sb.length());
        System.out.println("Capacity at least: " + (sb.capacity() >= 100));
    }
}

实用的构建器

综合运用这些知识:通过链式追加和循环,高效地构建一个小型报告字符串。

public class Main {
    public static void main(String[] args) {
        int[] sales = {100, 250, 75};
        StringBuilder report = new StringBuilder("Sales Report\n");
        int total = 0;
        for (int i = 0; i < sales.length; i++) {
            report.append("Day ").append(i + 1).append(": ").append(sales[i]).append('\n');
            total += sales[i];
        }
        report.append("Total: ").append(total);
        System.out.println(report);
    }
}

快速检查

为什么 StringBuilder 比在循环中反复使用 + 拼接更高效?

回顾

您已经学习了如何使用 StringBuilder 构建字符串:

  • 它是一个可变的字符序列
  • append 会添加内容,并支持链式调用
  • 非常适合在循环中构建文本
  • 调用 toString() 获取最终的 String
  • 设置初始容量可以避免调整大小

常见问题解答

「使用 StringBuilder 构建字符串」课时是免费的吗?

是的 — 「使用 StringBuilder 构建字符串」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 4 节课。

「使用 StringBuilder 构建字符串」这节课中我会学到什么?

高效拼接 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Java Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「使用 StringBuilder 构建字符串」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Java Academy 课中编写并运行代码吗?

能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 字符串为何不可变
  2. 使用 StringBuilder 构建字符串
  3. StringBuilder 方法
  4. StringBuilder 与 StringBuffer
← 返回 Java Academy