You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中用格式说明符而非循环重复打印字符?

用printf()和格式说明符重复打印指定次数的'='

这里有两种简洁的实现方式,完全基于printf的格式说明符特性完成需求:

方法一:静态长字符串+动态精度控制

这是符合标准C规范的最直接写法,先定义一个长度足够覆盖预期最大打印次数的=字符串,再通过格式说明符截取前N个字符输出:

#include <stdio.h>

int main() {
    int count = 20;
    // 定义一个长度远大于预期最大count的'='字符串
    const char eq_chars[] = "================================================================";
    // %.%ds 表示输出字符串的前count个字符
    printf("%.%ds\n", count, eq_chars);
    return 0;
}

说明:%.%ds里的第一个%d会被count的值替换,作为输出精度(即截取字符串的前N个字符),最终精准输出count个=。

方法二:动态宽度+终端退格替换(GCC扩展场景)

如果不想预先定义长字符串,可利用终端退格符特性实现,但仅适用于支持ANSI终端的环境:

#include <stdio.h>

int main() {
    int count = 20;
    // %*s 生成count个空格,再通过\b和=逐个替换
    printf("%*s", count, "");
    for (int i = 0; i < count; i++) {
        printf("\b=");
    }
    printf("\n");
    return 0;
}

注意:这种方法依赖终端的退格符\b行为,属于非标准写法,优先推荐方法一。

内容的提问来源于stack exchange,提问作者Pranali Hemane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 09:18:29