Ausgabe von einem Buchstaben

EddieG

Erfahrenes Mitglied
Hallo,
ich bin gerade dabei Java zu erlernen als aufgabe habe ich folgendes
und zwar möchte ich einen buchstaben variabel ausgeben z.B. so:
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
mein bisheriges script
Code:
public class Aausgabe {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		int i,j;
		char buchstabe = 'A';
		int zeilenAnzahl = 5;
			for (i=0; i<zeilenAnzahl; i++)
			{
				System.out.println(buchstabe);
			}
	}

}
ich denke das ich noch eine For schleife einbauen muss, allerdings nicht wie, könnte mir jemand vielleicht den ein oder anderen tipp geben?
 
Hallo,

ich hoffe du meinst nicht JavaScript, das ist nämlich was anderes.

Was meinst du mit Buchstaben Variabel ausgeben?
Wenn ich dich richtig verstanden haben, dann sollte es so gehen:
Java:
int j = 0;
char buchstabe = 'A';
int zeilenAnzahl = 5;
for (int i=0; i<zeilenAnzahl; i++){
  j = 0;
  do{
    System.out.print(buchstabe);
    j++;
  }while (j < i);
  System.out.println();
}
 
Hi,

Code:
                int j = 0;
		char buchstabe = 'A';
		int zeilenAnzahl = 5;
		StringBuffer sb = new StringBuffer();
			
		for (int i=0; i<zeilenAnzahl; i++){
				
                      for(int n=0; n <= j; n++){				
                           sb.append(buchstabe);
                      }
                      System.out.println(sb.toString());
                      j++;
		}

tut das was Du möchtest.

Grüße, Tim
 
Hi,

Code:
                int j = 0;
		char buchstabe = 'A';
		int zeilenAnzahl = 5;
		StringBuffer sb = new StringBuffer();
			
		for (int i=0; i<zeilenAnzahl; i++){
				
                      for(int n=0; n <= j; n++){				
                           sb.append(buchstabe);
                      }
                      System.out.println(sb.toString());
                      j++;
		}

tut das was Du möchtest.

Grüße, Tim

könntest du es vielleicht noch erklären?

wobei es allerdings noch bissel falsch ist
uhm es sollte ja so aussehen wie ich es oben gennant habe
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
wenn ich 6 zeilen mache müssten es dann 11;12 oder 13 A's sein bin mir nicht sicher
 
Zuletzt bearbeitet:
Hallo,
uhm es sollte ja so aussehen wie ich es oben genannt habe
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
wenn ich 6 zeilen mache müssten es dann 11;12 oder 13 A's sein bin mir nicht sicher
Das hängt dann ja ein wenig von der Aufgabenstellung, gell
Also - wenn ich es richtig interpretiere, dann soll pro Zeile immer die nächsthöhere ungerade Anzahl des Buchstabens ausgegeben werden, oder :rolleyes:
Also solltest Du - so wie von Tim beschrieben - in der äußeren Schleife (für die Zeilen) die innere Schleife für die Anzahl der Buchstaben durchlaufen!

Du musst Dir jetzt halt nur überlegen, wie das j im angegebenen Beispiel auf die entsprechenden Werte zu setzen ist !!

Und Du musst überlegen, was am Zeilenende passieren soll .....

Gruß
Klaus
 
Hi,

mein Programm macht:
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA

Laut Deinem Posting soll es machen:
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA

Womit es ja macht was es soll.

Nach welcher Gesetzmäßigkeit wolltest Du das denn programmieren
bzw. Verhältnis Zeilenanzahl zu aufaddierten A's?
 
1. Nein es macht
A
AAA
AAAAAA
AAAAAAAAAA
AAAAAAAAAAAAAAA
2. vfl_freak sagte es soll immer die nächste höhere ungerade zahl des buchstabens anzeigen.

3.)weshalb muss ich:
StringBuffer sb = new StringBuffer();
int j = 0;
sb.append(buchstabe);
sb.toString()
machen?
will ja was dazu lernen ;)

gibt es nen buch da zu empfehlen ist?




Update:
Code:
public class Aausgabe {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
	int i,j;
		char buchstabe = 'A';
		int zeilenAnzahl = 5;
		StringBuffer sb = new StringBuffer();
			for (i=0; i<zeilenAnzahl; i++)
			{
				for (j=0; j<=i ; j++)
				{
					sb.append(buchstabe);
				}
				System.out.println(sb.toString());
			}
	}

}
hat selbe ergebnis wie dein code das heißt der dritte zähler ist überflüssig allerdings ist es ja immernoch nicht richtig :(
denn in der 1.Zeile ist es A was ja noch stimmt und in der 2. sind es 2 A's aber in der dritten sind es 6 in der vierten 10 und der fünften 15 :((
 
Zuletzt bearbeitet:
Hallo,
warum nicht kurz und knackig

Code:
char buchstabe = 'A';
int iAnzZeilen = 5;
StringBuffer sb = new StringBuffer();
for( int i = 0; i < iAnzZeilen; i++)
{
    for( int j = 1; j < (i*2); j++ )
// oder:  for( int j = 1; j <= (i*2)-1; j++ )  geht beides :-)
    {
        sb.append(buchstabe);
    }
    System.out.println( sb.toString() );
}

Einen Stringbuffer musst Du in diesem kleinen Beispiel sicher nicht zwingend nehmen!! Es würde bspw. auch ein String oder ein char-Array genügen! Stringbuffer haben u. U. bei weiterer Verwendung gewisse Vorteile ....

Gruß
Klaus
 
Zuletzt bearbeitet:
Hi,

Code:
public static void count() {

		int j = 0;
		char buchstabe = 'A';
		int zeilenAnzahl = 5;
		StringBuffer sb = new StringBuffer();
			
		for (int i=0; i<zeilenAnzahl; i++){
			
			j = sb.length();
			sb.append(buchstabe);
			
            if( isEven(sb.length())){
             sb.append(buchstabe);
            }
            System.out.println(sb.toString());

		}
	}

Um Deine Frage zu beantworten:
In einen StringBuffer kannst Du alles, wirklich alles hineintun.
Sprich: Du sparst Dir teils recht aufwändige Konvertierungen etc..

Betrachte das Teil als Container für etwas, das Du als String verwalten willst.

Was mir noch eingefallen ist: Du kannst Integer darauf prüfen, ob sie gerade sind -
am Anfang vielleicht verständlicher:

Code:
	public static boolean isEven(Integer integer){
		
		if ( integer.intValue() % 2 == 0 ){            	
       	 return true;
        }
		return false;
	}

Mit solchen Teilmethoden kannst Du dir dann leicht verständliche Codes zimmern.

Grüße Tim
 

Neue Beiträge

Zurück