# "%s" oder "%n" - wofür nutzt man das?



## schlomm (11. Dez 2012)

Nabend zusammen,
Versuche mich hier etwas in Java einzuarbeiten und nutze unter anderem das "Java ist auch eine Insel" Buch. Soweit so gut. Beim Bearbeiten stellt sich mir folgende Frage...irgendwie weiß ich nicht so recht wie und wann ich sowas einsetzen kann. Warum ist mir ebenfalls nicht so ganz klar. Zunächst zwei Beispiele. Zeile 8 (erstes Beispiel), Zeile 7 (zweites Beispiel).
Wofür stehen die %d oder %s. 
Gerade beim Zweiten Beispiel kann ich doch irgendwie die Eingaben, die ich durch den Scanner lese, ja irgendwie wieder als Ausgabe nutzen. Aber wafür die %n, %s stehen weiß ich leider nicht.

Über jede Antwort würde ich mich freuen 


```
class TowerOfHanoi
{
 static void move( int n, String fromPeg, String toPeg, String usingPeg )
 {
  if ( n > 1 )
  {
   move( n – 1, fromPeg, usingPeg, toPeg );
   System.out.printf( "Bewege Scheibe %d von der %s zur %s.%n", n, fromPeg, toPeg );
   move( n – 1, usingPeg, toPeg, fromPeg );
  }
  else
   System.out.printf( "Bewege Scheibe %d von der %s zur %s.%n", n, fromPeg, toPeg );
 }

 public static void main( String[] args )
 {
  move( 4, "Kupfersäule", "Silbersäule", "Goldsäule" ); 
 }
}
```



```
public class unterhaltung {
	public static void main(String args[]) {
		System.out.println("Moin! Wie heißt denn du?");
		String name = new java.util.Scanner(System.in).nextLine();
		System.out.printf("Hallo %s. Wie alt bist du?%n", name);
		int age = new java.util.Scanner(System.in).nextInt();
		System.out.printf("Aha, %s Jahre, das ist ja die Hälfte von %s.%n",
				age, age * 2);
		System.out.println("Sag mal, was ist deine Lieblingsfließkommazahl?");
		double value = new java.util.Scanner(System.in).nextDouble();
		System.out.printf("%s? Aha, meine ist %s.%n", value,
				Math.random() * 100000);
	}

}
```


----------



## nevermind 10844 (11. Dez 2012)

Moin.

Diese %* Angaben in Strings kannst du dir als Platzhalter vorstellen:

%s für String,
%f für Gleitkommazahlen,
%d für Integer und
%n für Zeilenumbruch statt \n (Hat was mit Cross-Platform zun tun...)

An der Stelle an der ein solcher Platzhalter steht, wird im fertigen String die Variable an der entsprechenden Stelle der Aufzählung hinter dem String erscheinen.

Grüße!


----------



## test3334252 (11. Dez 2012)

Formatter (Java Platform SE 6)


----------



## schlomm (11. Dez 2012)

Danke 
In dem Zusammenhang: Ist das Ganze nur mit 
	
	
	
	





```
System.out.printf
```
 möglich?


----------



## tfa (11. Dez 2012)

Wenn du den String nicht gleich ausgeben willst, kannst du [c]String.format()[/c] benutzen.


----------

