2016-06-12 5 views
-5
String s1=sc.next(); 
int x=sc.nextInt(); 
System.out.printf("%-15s%03d\n", s1, x); 

Kann jemand den Teil innerhalb der "printf" Zahnspange erklären?Was macht System.out.printf ("% -15s% 03d n", s1, x)?

+6

Die Javadoc kann: https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#printf-java.lang.String-java.lang.Object...- –

+2

Haben Sie den Befehl in Java ausgeführt und sehen, was er tut? Haben Sie irgendwelche Informationen darüber recherchiert? Tut mir leid, Mann, aber das ist wirklich eines der Dinge, die Sie in der Lage sein sollten, selbst herauszufinden .https: //docs.oracle.com/javase/tutorial/java/data/numberformat.html –

Antwort

1

Best tutorial for printf out there

Die Grundlagen sind: %s ist für das erste String als Argument Hexen suchen kann, %d zum ersten int finden und 03 vor %d ist ein Modifikator, wie genau wollen Sie das Dezimalsystem drucken Nummer.

1

Dies ist die Formatiersyntax von Java. Sie können mehr darüber finden here. In Ihrem Fall haben Sie 2 Parameter, die formatiert werden.

Zuerst s1, die mit %-15s formatiert ist. Die % bedeutet, dass Folgendes ein Argument ist, das formatiert wird. Dann folgt ein , was zu linker Ausrichtung führt. 15 füllt die Zeichenfolge bis zu einer Länge von 15 Zeichen (Leerzeichen am Ende hinzufügen). Schließlich bedeutet die s, dass Sie eine Zeichenfolge formatieren.

Zweite x, die mit %03d formatiert ist. Hier ist das 0 das Füllzeichen, was bedeutet, dass bei Bedarf Nullen hinzugefügt werden. Die 3 ist wieder die Breite, was bedeutet, dass das Füllzeichen 0 so oft wie nötig hinzugefügt wird, um es 3 Stellen lang zu machen (diesmal zu Beginn). Schließlich bedeutet d, dass eine ganze Zahl formatiert ist.