这个问题有点措辞(我知道),但我不知道我要找的确切名称。
我有一个HashMap,我正在打印HashMap的键和值。 所需的输出就是这个:
我实际得到的是:
我目前的代码是这样的:
System.out.println("\n\nTom Hanks' co-stars are");
costarMovieMap.forEach((k, v)-> System.out.printf("\t%s\t\t\t\t\t\t\t\t in \t\t\t\t\t\t\t%s\n", k, v));
我是对的怪物吗?
我的猜测是,要获得所需的输出,我必须指定%s
从某个行间距开始。我不太确定。关于我能做什么的任何想法/建议?
答案 0 :(得分:1)
输出字符串时,可以将宽度指定为格式的一部分。这将填充字符串空格,直到满足所需的宽度。
现在,我不会计算空格,但它可能看起来像这样:
System.out.println("\n\nTom Hanks' co-stars are");
costarMovieMap.forEach((k, v)-> System.out.printf("\t%20s in %s\n", k, v));
PS有足够的创意视频编辑,是的,汤姆汉克斯可以成为他自己的合作明星。
答案 1 :(得分:0)
你可以这样做,这将打印类似于你预期的结果。
costarMovieMap.forEach((k, v)-> System.out.printf("%1$-15s %2$-8s %s \n", k, "in", v));
可选的argument_index是一个 十进制整数表示 论证的位置 参数列表。第一个论点是 由" 1 $"引用,第二个引用 " 2 $"等
可选标志是一组 修改输出的字符 格式。有效标志集取决于 关于转换。
可选宽度是十进制整数,表示最小值 要写入的字符数 输出。
可选的精度是a 通常是非负十进制整数 用来限制数量 字符。具体行为 取决于转换。
所需的转换是a 字符指示如何参数 应格式化。这套有效 给定参数的转换 取决于参数的数据类型。
%1$
指的是第一个替换。在这种情况下的关键。你要说的是必须至少有15个字符,否则它将被填充。
http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html