gpt4 book ai didi

Java - 用 printf 动态向左填充

转载 作者:行者123 更新时间:2023-12-01 14:01:11 25 4
gpt4 key购买 nike

我正在学习 Java,并且在这个愚蠢的小问题上花费了太多时间。我正在尝试用空格动态填充字符串输出的左侧,因此显示的所有值都将向左填充。问题是,在用户输入值之前我不知道值的长度。

这是我正在尝试做的事情的一个例子。 nLongestString 是我显示的最长字符串的长度,strValue 是字符串本身的值。这根本不能动态工作。如果我硬编码 nLongestString 的值,它可以工作,但我不能这样做,因为我并不总是知道字符串有多长。

 System.out.printf("%"+nLongestString+"s", strValue + ": ");

输出应如下所示:

thisisalongstring:
longstring:
short:

最佳答案

我没有看到你的问题,以下内容对我来说效果很好。 (Java 7)

编辑:您检查过nLongestString 的值吗?我猜它并没有像你想象的那样设置。

    String[] arr = { "foo", "bar", "foobar" };

int max = 0;

for( String s : arr ) {
if( s.length() > max ) {
max = s.length();
}
}

for( String s : arr ) {
System.out.printf( ">%" + max + "s<%n", s );
}

Random random = new Random( System.currentTimeMillis() );
// just to settle the question of whether it works when
// Java can't know ahead of time what the value will be
max = random.nextInt( 10 ) + 6;

for( String s : arr ) {
System.out.printf( ">%" + max + "s<%n", s );
}
}

输出:

>   foo<
> bar<
>foobar<
// the following varies, of course
> foo<
> bar<
> foobar<

关于Java - 用 printf 动态向左填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19339844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com