Ausgabe nach 5 Zeichen in neue Zeile schreiben???

  • Themenstarter Themenstarter Gelöschtes Mitglied 32264
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 32264

Gast
Hallo ihr liebe,

hoffe ihr könnt einem Java anfänger etwas zur Hand gehen.
Ich würde gerne wissen wie ich eine Ausgabe z.B 12345678
in dieser Form ausgebe

12345
678
Ich hab schon gesucht aber ich werde irgendwie nicht fündig.

Hoffe ich könnt helfen.

Danke schonmal dafür
 
Was hast du denn schon probiert?
Das einfachste wäre doch den String zeichen für zeichen auszugeben und nach jedem 5ten Zeichen eine neue Zeile einzufügen.
Stichwort Schleife, charAt, print, println.
 
Ich hab bis jetzt ne schleife versucht. Leider landet meine Ausgabe da in einer Endlosschleife. Bin leider nicht so gut darin. Die {sind sicher falsch oder?

Java:
 for(int i=2;i<ist.length;i++){
            
            if(ist[i])									
               
               while (i < 6)
                  System.out.println(i); 						
         }
      }
      
   }
 
Versuch dich an folgende Syntax bei Schleifen und If-Anweisungen zu halten.

Es geht um die {}

Java:
for(Bedingung){
// Code
 }

while(Bedingung){
// Code
}

if(Bedingung){
// Code
}

Die Bedingung deiner If-Anweisung solltest du aber nochmal überdenken.
 
So, hab mich ein bisschen gespielt. Wahrscheinlich gibt es eine einfachere Methode, allerdings ist mir gerade nichts besseres eingefallen. Dürft mich natürlich gern verbessern.

Java:
public class Test {

	
	public static void main(String[] args) {
		
		String str = "";
		String test = "12345678915634564464";
		char[] array = test.toCharArray();
		
		
		for(int i = 0; i<test.length();i++){
			if(i!=0 && i%5==0){
				System.out.println(str);
				str = "";
			}
			str = str + array[i];
		}
		
		System.out.println(str);
		
	}
}

Ich hoffe, dass du das haben wolltest.
 
Einfach mal ne andere Lösung

Java:
public static void main(String[] args){
		
		String test = "12345678915634564464524367";
		
		for(int i = 0; i < (test.length()/5)*5; i+=5)
			System.out.println(test.substring(i,i+5));
			
		if( test.length() > ((test.length()/5)*5))
			System.out.println(test.substring(((test.length()/5)*5),test.length()));
		
	}

Grüße
 
@Helgon: was wacht dieses "/5*5"?

Mathematisch gesehen ergibt das 1, also könnte man es weg lassen. Der Test zeigt allerdings, dass man es benötigt. Also was passiert da, ich würde es gerne verstehen!
 
im Endeffekt runde ich damit nur ab 🙂

sagen wir:

test.length() == 20 -> 20 / 5 = 4 * 5 = 20 -> alles ok

test.length() == 24 -> 24/5 = 4.8 aber da int wird gerundet auf 4, und 4 * 5 = 20 wieder , damit die Schleife richtig endet

Vllt nicht all zu sauber, aber das war die erste Lösung die mir in den Sinn gekommen ist 🙂
 
Danke für eure schnellen Antworten. Ich hab allerdings noch eine Frage. Wo genau muss ich diese Schleife einbauen? Mein Programm arbeitet ja mit array. Ich versteh die einzelne Schleife aber mit dem Gesamtbild hapert es leider noch etwas.

Mein Programm sieht wie folgt aus:

Java:
   public static void main (String []args){
      
         int n;
      
         System.out.println("Bitte geben Sie die Oberkante ein!");
         n=SavitchIn.readLineInt();
         
         System.out.println();
        
              
         boolean[] istPrim = new boolean[n];         
      
         for (int i=2; i<istPrim.length;i++){
            istPrim[i]=true;
         }
         
      	
         for (int i=2; i<istPrim.length;i++){
         
            for (int j=2;i*j<istPrim.length;j++){
            
               istPrim[i*j]=false;
            
            }
            
         
         }
         for(int i=2;i<istPrim.length;i++){
         
            if(istPrim[i])								//System.out.println(istPrim[i]); // true und false Ausgabe
            
            
               System.out.println(i); 						// Formatierte Ausgabe der Primzahlen
         }
      
      }
   
   }

Wäre toll wenn ihr mir da nochmal einen Tip geben könntet.
Ich würde die Schleife nach der letzten Schleife und vor der Ausgabe setzen. Wäre das Korrekt?
 
Ganz einfach:
Java:
int ausgabeZaehler=0;
         for(int i=2;i<istPrim.length;i++)
         {
        	 if(istPrim[i]) 
        	 {
        		 System.out.print(i+" ");
        		 ausgabeZaehler++;
        	 }
        	 if(ausgabeZaehler>=5)
        	 {
        		 System.out.println();
        		 ausgabeZaehler=0;
        	 }
         }
 

Neue Themen


Zurück
Oben