0Pricing
Java Academy · 课时

String.format

构建格式化字符串

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

格式化但不打印

printf 会将文本直接发送到控制台。但有时您希望将格式化后的文本作为 String 保存、返回或重复使用。

String.format 正好可以实现这一点:使用相同的规则,但它会返回一个值,而不是进行打印。

第一次使用 String.format

String.format 使用与 printf 相同的占位符。它会构建一个新的字符串并将其返回给您。

这里将结果保存到 msg 中,然后进行打印。

public class Main {
    public static void main(String[] args) {
        String msg = String.format("Hello, %s!", "World");
        System.out.println(msg);
    }
}

相同的说明符

您之前学到的所有内容都适用:%d、%f、%.2f、宽度和标志在 String.format 中都可以使用。

唯一的区别是,结果会被返回,而不是直接显示。

public class Main {
    public static void main(String[] args) {
        String s = String.format("%s: %.2f", "Price", 9.5);
        System.out.println(s);
    }
}

保存结果

由于它会返回一个 String,您可以将其保存在变量中、与其他内容连接,或将其传给另一个方法。

这对于逐步构建消息非常有用。

public class Main {
    public static void main(String[] args) {
        String label = String.format("#%03d", 7);
        System.out.println("ID " + label);
    }
}

返回格式化文本

方法可以使用 String.format 返回一个整洁的字符串。这样可以将格式化逻辑集中在一个地方。

下面的 greet 会返回格式化后的问候语。

public class Main {
    static String greet(String name) {
        return String.format("Welcome, %s!", name);
    }
    public static void main(String[] args) {
        System.out.println(greet("Mia"));
    }
}

不会自动换行

与 printf 一样,String.format 不会添加换行符,除非您在格式字符串中写入 \n。

如果您使用 println 打印结果,println 会为您添加换行符。

public class Main {
    public static void main(String[] args) {
        String s = String.format("Line one");
        System.out.println(s);
    }
}

多个值

您可以传入与占位符数量相同的任意多个参数。它们会像 printf 一样从左到右填入各个位置。

这样可以轻松地将一行数据构建为一个字符串。

public class Main {
    public static void main(String[] args) {
        String row = String.format("%s | %d | %.1f", "Tea", 3, 2.5);
        System.out.println(row);
    }
}

重复使用格式

由于格式字符串只是文本,您可以在循环中多次应用它,以生成格式一致的字符串。

每次调用都会使用新值返回一个新的字符串。

public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 3; i++) {
            System.out.println(String.format("Item %d", i));
        }
    }
}

printf 在内部使用 format

在底层,System.out.printf(fmt, args) 的行为类似于打印 String.format(fmt, args) 的结果。

因此,选择二者的关键在于您是想立即打印,还是想保留文本供之后使用。

构建日志和标签

String.format 适合用于日志行、用户界面标签和文件名,因为这些内容通常需要精确的格式。

将格式集中管理后,只需修改一处,就能更新每条消息。

public class Main {
    public static void main(String[] args) {
        int code = 404;
        String log = String.format("[ERROR %d] not found", code);
        System.out.println(log);
    }
}

相同的类型规则

说明符和值之间的规则完全相同:%d 需要整数,%f 需要浮点值,而类型不匹配会在运行时抛出异常。

运行前请仔细检查配对是否正确。

快速检查

String.format 与 printf 有什么区别?

回顾

String.format 遵循与 printf 相同的规则,但会返回一个可以保存、返回或重复使用的 String。

接下来,您将组合宽度和对齐方式来构建整齐的表格。

常见问题解答

「String.format」课时是免费的吗?

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

「String.format」这节课中我会学到什么?

构建格式化字符串 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Java Academy 需要有经验吗?

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

「String.format」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. printf 基础
  2. 数字与小数格式
  3. String.format
  4. 对齐表格
← 返回 Java Academy