Gibt es einen guten Grund, "printf" anstelle von "print" in Java zu verwenden?

Ich hatte keine Gelegenheit, ernsthafte Low-Level-Programmierkurse in der Schule zu nehmen. (Ich weiß, dass ich wirklich die "hinter den Kulissen" lernen sollte, um ein besserer Programmierer zu sein.) Ich schätze die Annehmlichkeiten von Java, einschließlich der Fähigkeit, alles in einer System.out.print statement. However, is there any reason why you would want to use Aussage zu kleben. Gibt es jedoch einen Grund, warum Sie stattdessen System.out.printf instead? verwenden möchten?

Auch sollte ich Printaufrufe wie diese in "echten Anwendungen" vermeiden? Es ist wahrscheinlich besser, Nachrichten auf der Anzeige des Clients mit einer Art UI-Funktion zu drucken, nicht wahr?

Antwort auf "Gibt es einen guten Grund, "printf" anstelle von "print" in Java zu verwenden? " 4 von antworten

Es ist besser, wenn Sie die Genauigkeit Ihrer Gleitkommazahlen steuern müssen, tun Polsterung usw. System.out.print kann alle Arten von Sachen ausdrucken, aber Sie können nicht feinkörnige Kontrolle der Präzision und Polsterung mit ihm tun.

Normalerweise in einer "echten" Anwendung würden Sie in ein Protokollierungssystem wie java.util.Logging oder Commons-Protokollierung schreiben, die die Möglichkeit haben, verschiedene Ebenen der Ausführlichkeit zu protokollieren (d. h. "Debug"-Modus, der in einer Produktionsumgebung deaktiviert wäre). Für schnelles und schmutziges temporäres Debuggen ist jedoch manchmal System.out.println() der einfachste Weg, Dinge zu tun (vorausgesetzt, Ihre Laufzeitumgebung gibt die Standardausgabe irgendwo hin, wo Sie sie lesen können).

Ich sollte auch erwähnen, dass Sie immer "String.format()" verwenden können, um eine Zeichenfolge mit einem Format und einer Variablenargumentliste zu erstellen (dann übergeben Sie diese Zeichenfolge an eine Protokollierungsmethode oder System.out.println). Dies ist oft schöner, als einen Haufen von Variablen zu einer Zeichenfolge zu verketten.

Die printf method of the Methode der PrintStream class provides Klasse bietet string formatting similar to the printf function in C. function in C. ähnlich der printf function in C. Funktion in C.

Die Formatierung für printf uses the verwendet das Formatter class' formatting syntax class' formatting syntax. .

Die printf method can be particularly useful when displaying multiple variables in one line which would be tedious using string concatenation: Methode kann besonders nützlich sein, wenn mehrere Variablen in einer Zeile angezeigt werden, die mit String-Verkettung mühsam wären:

int a = 10;
int b = 20;

// Tedious string concatenation.
System.out.println("a: " + a + " b: " + b);

// Output using string formatting.
System.out.printf("a: %d b: %d\n", a, b);

Auch das Schreiben von Java-Anwendungen bedeutet nicht unbedingt das Schreiben von GUI-Anwendungen, daher würde man beim Schreiben von Konsolenanwendungen print, , println, , printf and other functions that will output to und andere Funktionen verwenden, die an System.out. ausgegeben werden.

Wenn die meisten echten Programme, Protokollierung verwendet wird. Debugmeldungen können über die Protokollierungskonfiguration ein-/ausgeschaltet werden. Siehe log4j als Beispiel.