我的分配工作基本上已经完成,但是输出中需要一些格式化,但我只是不明白如何使用printf
解决问题。我以前从未使用过它。
我有用户输入的id和pws,它们保存在数组列表中。
输出应如下所示:
Nr. Name Password (ROT13)
-----------------------------------------------------------
1. Sally Hu nopNOP
2. Bernd das Brot zrvaCnffjbeg
3. John Doe klmTRURVZ
-----------------------------------------------------------
但是对我来说看起来像这样:
Nr. Name Password (ROT13)
-----------------------------------------------------------
1. Sally Hu nopNOP
2. Bernd das Brot zrvaCnffjbeg
3. John Doe klmTRURVZ
-----------------------------------------------------------
当前打印代码:
System.out.println("Nr. Name Passwort (ROT13)");
System.out.println("-----------------------------------------------------------");
for(int i = 0; i < userList.size();i++)
{
System.out.println((userList.indexOf(userList.get(i))+1) +". " + userList.get(i).getmId() + " " + rot13(userList.get(i).getmPw()));
}
是否有人可以快速帮助我,甚至可以解释一些用于解决此格式问题的printf
函数? (因此将来我可以正确地使用printf
进行格式化,而不是在我的打印行中使用+“” +进行这种伪造的伪格式化,从而导致类似此处的问题)
答案 0 :(得分:0)
您可以在System.out.println中以“ \ t”标识:
System.out.println("test\ttest2");
答案 1 :(得分:0)
尝试
System.out.format("%d. %-15s %s%n", userList.indexOf(userList.get(i))+1, userList.get(i).getmId(), rot13(userList.get(i).getmPw()));
答案 2 :(得分:0)
我只是不明白如何使用printf
这是方法的签名from the docs。
public PrintStream printf(String format, Object... args)
我们将返回值放在一边,并关注参数:
format 是一个字符串,用于指定要使用的格式,而 args 是要使用该格式打印的变量的列表。
让我们举个例子。
假设您要以这种特定格式打印字符串-> “ 5 + 6 = 11” 。 但这是此格式的字符串的特定实例,具有这些特定的数字,而您想放置一个任意数字,结果将是显示这些数字加法的字符串。
字符串格式是这样的:数字,空格'',加号'+',数字,空格,等号'=',空格和最后一个数字。为了使printf()
理解这一点,您需要在第一个参数中将其作为字符串提供。
这是该字符串:String format = "%d + %d = %d"
printf()
从上面的字符串中知道您想要的格式,它将用整数变量替换每个'%d'(浮点数为%f,字符串为%s等)。这些是您在 printf()之后补充的整数。
最后,在我们的特定示例中,再次为“ 5 + 6 = 11” 。
int number1 = 5, number2 = 6;
String format = "%d + %d = %d";
//print the result formatted
System.out.printf(format,number1, number2, number1+number2);
您可以更改number1和number2的值,其结果将始终是String format
指定的格式。