Printf nutzen

chk1102

Aktives Mitglied
Hallo Zusammen,

ich bräuchte mal Hilfe bei Printf-Ausgaben:
Ganz unten möchte ich das Array Kugeln ausgeben, sodass nach jeden 7 oder 8 Zahlen ein Zeilenumbruch stattfindet. Einfach der übersichthalthalber.

Hat jemand einen Rat / Tipp?
Ich habe auf folg. Seite : PrintfApplet: Den Java-5.0-Befehl printf ben
probiert,...kriegs aber nicht aufm Schirm.:rtfm:

Java:
package Proggen_2teRunde;

import java.util.Arrays;
import java.util.Random;

public class Lottozahlen_2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int kugeln [] = new int [49];
		int lotto [] = new int [7];
		int zs = 0;
		
		for (int i = 0; i<lotto.length; i++) {
			lotto[i] = new Random().nextInt(49)+1;
			for ( int j = 0; j<i; j++) {
				if ( lotto[i] == lotto[j]) {
					i--;
				}
			}
		}
		for ( int i = 0; i<lotto.length; i++) {
			if ((i+1)<=6) {
				kugeln[lotto[i]-1] = 1;
			}
			if ((i+1)==7) {
				kugeln[lotto[i]-1] = 2;
				zs = lotto[i];
			}
		}
		System.out.println("Lottozahlen und Gewinne");
		System.out.println("Lottozahlen: " + Arrays.toString(lotto));
		System.out.printf("%8d\n", Arrays.toString(kugeln));

	}

}
 
Java:
System.out.printf("%8d\n", Arrays.toString(kugeln));
Hier gibst du das Array aus (aber min. 8 Zeichen) und machst dann einen Zeilenumbruch.

Damit du nach 7 oder 8 Zahlen des Arrays einen Zeilenumbruch bekommst einfach selbst flott etwas schreiben
Java:
for(int i=0;i<kugeln.length;i++)
{
    System.out.print(kugeln[i] + " ");
    if(i%7==0)
    {
        System.out.println();
    }
}
 
Java:
System.out.printf("%8d\n", Arrays.toString(kugeln));
Hier gibst du das Array aus (aber min. 8 Zeichen) und machst dann einen Zeilenumbruch.

Damit du nach 7 oder 8 Zahlen des Arrays einen Zeilenumbruch bekommst einfach selbst flott etwas schreiben
Java:
for(int i=0;i<kugeln.length;i++)
{
    System.out.print(kugeln[i] + " ");
    if(i%7==0)
    {
        System.out.println();
    }
}

Ich denke eher sowas:

Java:
for(int i=0;i<kugeln.length;)
{
    System.out.print(kugeln[i++] + " ");
    if(i%7==0)
    {
        System.out.println();
    }
}

Bei deinem wird nach der ersten Zeile direkt ein Zeilenumbruch gemacht.
 
Vielen Dank euch beiden.
Ich hab nächste Woche eine mündl Prüfung zu Programmieren mit Java und sehr wahrscheinlich muss ich ähnl. mit Printf umsetzen. In dieser Version umgehe ich Printf.

Nur wie kann ich eine solche Aufgabe mit Printf abhandeln?
 
Hi Chk1102

Java:
for(int i=0;i<kugeln.length;)
{
	System.out.printf("%3d", kugeln[i++]);
	if(i%7==0)
		System.out.printf("\n");
}

Nicht viel anders 🙂

Pentalon
 
Mit printf geht das soweit ich weiß nicht.
Sowas wie
Code:
System.out.printf( "%d{8}\n" );
ist nicht möglich.

Wieso willst du denn alles mit printf machen? Ich habe schon öfter gesehen, wie du Fragen stellst über printf. Macht ihr das in der Uni? Mit printf kann man nämlich nicht so viel machen. (bzw man kommt auch gut ohne zurecht. ^^)
 
printf in Java erreicht nicht annährend das printf, welches für C konzipiert wurde.
Wer solche formatierten Konsolenausgaben braucht, sollte Java meiden und eher C benutzen.
 
Schreib mal ein, zwei Beispiele, die mit C gehen, aber mit Java nicht.

Na, das würde mich auch mal interessieren. Hier schonmal ein Gegenbeispiel, was in Java geht aber in C nicht:

Java:
public String toString() {
    return String.format("%6s | %08x | %-7s | %-28.28s | %-16s | %6$tY-%<tm-%<td %<tH:%<tM:%<tS | %7$-5b",
        this.system, this.id, this.userId, this.clientVersion, this.hostName, this.loginTime, this.citrix);
}
 

Zurück
Oben