StringArray "AA" "AB" "AC".

Status
Nicht offen für weitere Antworten.

M.I.G

Aktives Mitglied
Ich versuche gerade ein Programm zu schreiben, das Strings in einem Array ausgibt und die Strings sollen sich jeweils um einen Buchstaben unterscheiden. Also der erste soll aus "AA" bestehen, der zweite aus "AB", der dritte aus "AC" und so weiter bis "ZZ".
Ich hab schon folgendes geschrieben, aber der Editor gibt für jeden String immer nur "null" aus.
Code:
class StringReihe
{
  public static void main(String[] args)
  {
    String[] Name = new String[65*65];
    String str;
    
    int lauf = 0;
    
    while(lauf<27)
    {
      for(char buchstabe1 = 65; buchstabe1 <= 91; buchstabe1++)
      {
        for(char buchstabe2 = 65; buchstabe2  <= 91; buchstabe2++)
        {
          lauf++;
          char[] data = new char[2];
          data[0] = buchstabe1;
          data[1] = buchstabe2;
          Name[lauf] = String.valueOf(data);
        }
      }
    }
    for(int index = 0;index<(65*65);index++)
    {
      System.out.println(Name[index]);
    }
  }
}
Könnt ihr mir sagen was ich falsch mache und wie ich das beheben kann?
Vielen Dank im voraus.
 

Butterfly

Mitglied
Auf den ersten Blick liegt das Problem bei
Code:
Name[lauf] = String.valueOf(data);
Du holst dir damit ja die String-Repräsentation des Arrays, nicht den Inhalt des Arrays als String.
Machs doch einfach so:
Code:
Name[lauf] = data[0] + data[1];
 

0x7F800000

Top Contributor
1) da ist eine schleife zu viel. 2 verschachtelte reichen schon.
2) wo wird denn "lauf" inkrementiert, es ist doch eine endlosschleife? ???:L oder?
3) warum 65x65 ?

edit:
Butterfly hat gesagt.:
Auf den ersten Blick liegt das Problem bei
Code:
Name[lauf] = String.valueOf(data);
Du holst dir damit ja die String-Repräsentation des Arrays, nicht den Inhalt des Arrays als String.
nö, das ist imho schon okay, siehe da: http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html#valueOf(char[])

Butterfly hat gesagt.:
Code:
Name[lauf] = data[0] + data[1];
Das was da rechts steht ist nach der addition immer noch ein char, kein string. Wenn schon, dann
Code:
data[0]+""+data[1]
 

Butterfly

Mitglied
Ah, okay, hätte ich doch lieber erstmal in der API nachgesehen ;)
Mit den Anführungszeichen hast du aber recht, die hab ich vergessen. Mein Fehler.
 

M.I.G

Aktives Mitglied
zu 1)/2)Wenn ich die while-Schleife nich mache wird es ja eine Endlosschleife und krieg ne Fehlermeldung(index out of bound oder so)
zu 3) sry hab mich vertan da muss 26*26 hin.

Ich habs jetzt verändert aber dann krieg ich immer die Fehlermeldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 676
at StringReihe.main(StringReihe.java:19)

Code:
class StringReihe
{
  public static void main(String[] args)
  {
    String[] Name = new String[26*26];
    String str;
    
    int lauf = 0;
    while(lauf<(26*26))
    {
      for(char buchstabe1 = 65; buchstabe1 <= 91; buchstabe1++)
      {
        for(char buchstabe2 = 65; buchstabe2  <= 91; buchstabe2++)
        {
          lauf++;
          char[] data = new char[2];
          data[0] = buchstabe1;
          data[1] = buchstabe2;
          Name[lauf] = String.valueOf(data);
        }
      }
    }

    for(int index = 0;index<(26*26);index++)
    {
      System.out.println(Name[index]);
    }
  }
}
 

0x7F800000

Top Contributor
Wie gesagt: mach die äußere Schleife weg, mach "lauf" weg, und wähle das arrayelement mit
Code:
for(int buchstabe1=0; buchstabe1<26; buchstabe1++){
for(int buchstabe2=0; buchstabe2<26; buchstabe2++){
   Name[buchstabe1*26+buchstabe2]=( (char)(buchstabe1+65)+""+(char)(buchstabe2+65) );
}
}
statt mit
Code:
Name[lauf]

Dein code ist momentan unsinnig, wegen der endlosschleife, und weil "lauf" immer auf 0 bleibt...

edit: sry, mir ist augefallen, das du anders zählst, habs abgeändert...
 

M.I.G

Aktives Mitglied
jo thx aber jetzt zeigt der Editor das nich von anfang an an nur von "OQ" bis "ZZ", kann ich das noch ändern?
 

0x7F800000

Top Contributor
Ich habs eben versucht, mit dem code:
Code:
                String[] Name=new String[26*26];

		for(int buchstabe1=0; buchstabe1<26; buchstabe1++){
		for(int buchstabe2=0; buchstabe2<26; buchstabe2++){
		   Name[buchstabe1*26+buchstabe2]=( (char)(buchstabe1+65)+""+(char)(buchstabe2+65) );
		}
		}
		
		for(int i=0; i<Name.length; i++){
			System.out.print(Name[i]);
		}

Ausgabe:
AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ DA DB DC DD DE DF DG DH DI DJ DK DL DM DN DO DP DQ DR DS DT DU DV DW DX DY DZ EA EB EC ED EE EF EG EH EI EJ EK EL EM EN EO EP EQ ER ES ET EU EV EW EX EY EZ FA FB FC FD FE FF FG FH FI FJ FK FL FM FN FO FP FQ FR FS FT FU FV FW FX FY FZ GA GB GC GD GE GF GG GH GI GJ GK GL GM GN GO GP GQ GR GS GT GU GV GW GX GY GZ HA HB HC HD HE HF HG HH HI HJ HK HL HM HN HO HP HQ HR HS HT HU HV HW HX HY HZ IA IB IC ID IE IF IG IH II IJ IK IL IM IN IO IP IQ IR IS IT IU IV IW IX IY IZ JA JB JC JD JE JF JG JH JI JJ JK JL JM JN JO JP JQ JR JS JT JU JV JW JX JY JZ KA KB KC KD KE KF KG KH KI KJ KK KL KM KN KO KP KQ KR KS KT KU KV KW KX KY KZ LA LB LC LD LE LF LG LH LI LJ LK LL LM LN LO LP LQ LR LS LT LU LV LW LX LY LZ MA MB MC MD ME MF MG MH MI MJ MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NB NC ND NE NF NG NH NI NJ NK NL NM NN NO NP NQ NR NS NT NU NV NW NX NY NZ OA OB OC OD OE OF OG OH OI OJ OK OL OM ON OO OP OQ OR OS OT OU OV OW OX OY OZ PA PB PC PD PE PF PG PH PI PJ PK PL PM PN PO PP PQ PR PS PT PU PV PW PX PY PZ QA QB QC QD QE QF QG QH QI QJ QK QL QM QN QO QP QQ QR QS QT QU QV QW QX QY QZ RA RB RC RD RE RF RG RH RI RJ RK RL RM RN RO RP RQ RR RS RT RU RV RW RX RY RZ SA SB SC SD SE SF SG SH SI SJ SK SL SM SN SO SP SQ SR SS ST SU SV SW SX SY SZ TA TB TC TD TE TF TG TH TI TJ TK TL TM TN TO TP TQ TR TS TT TU TV TW TX TY TZ UA UB UC UD UE UF UG UH UI UJ UK UL UM UN UO UP UQ UR US UT UU UV UW UX UY UZ VA VB VC VD VE VF VG VH VI VJ VK VL VM VN VO VP VQ VR VS VT VU VV VW VX VY VZ WA WB WC WD WE WF WG WH WI WJ WK WL WM WN WO WP WQ WR WS WT WU WV WW WX WY WZ XA XB XC XD XE XF XG XH XI XJ XK XL XM XN XO XP XQ XR XS XT XU XV XW XX XY XZ YA YB YC YD YE YF YG YH YI YJ YK YL YM YN YO YP YQ YR YS YT YU YV YW YX YY YZ ZA ZB ZC ZD ZE ZF ZG ZH ZI ZJ ZK ZL ZM ZN ZO ZP ZQ ZR ZS ZT ZU ZV ZW ZX ZY ZZ

Wenn's nicht auf dein bildschirm passt, kann ich auch nichts dran ändern ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Stringarray an Java Basics - Anfänger-Themen 1
N StringArray alphabetisch sortieren Java Basics - Anfänger-Themen 4
M Umwandlung von StringArray in String Java Basics - Anfänger-Themen 2
T StringArray verlgeichen Java Basics - Anfänger-Themen 27
F Freier Index im Stringarray Java Basics - Anfänger-Themen 3
A Wie kann man einen zufälligen String aus einem StringArray auswählen? Java Basics - Anfänger-Themen 6
P StringArray mit String befüllen Java Basics - Anfänger-Themen 3
G Objekte aus ArrayList in StringArray konvertieren?! Java Basics - Anfänger-Themen 13
M set<String> in ein StringArray umwandeln? Java Basics - Anfänger-Themen 3
J Datentypen Umwandlung von Arraylist in ein StringArray Java Basics - Anfänger-Themen 10
S ermitteln eines Wertes im StringArray Java Basics - Anfänger-Themen 4
J Stringarray als Funktionsparameter Java Basics - Anfänger-Themen 6
A Stringarray toString Java Basics - Anfänger-Themen 5
D OOP StringArray in doubleArray konvertieren Java Basics - Anfänger-Themen 13
K Scanner -> StringArray Java Basics - Anfänger-Themen 7
A Stringarray formatieren Java Basics - Anfänger-Themen 2
G Stringelemente in Stringarray verteilen. Java Basics - Anfänger-Themen 3
G Stringarray durch was ersetzen? Java Basics - Anfänger-Themen 14
M StringArray[][] Java Basics - Anfänger-Themen 4
J String -> Stringarray Java Basics - Anfänger-Themen 5
K Stringarray zu Vector hinzufügen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben