hab da ein keines Prog geschrieben, dessen Herz die Methode spielen() ist. Diese bekommt ein Char-Feld übergeben welches nur Kleinbuchstaben enthält. Die einzelnen Zeichen im Feld ergeben einen Satz, wobei jedem Vokal (also a, e, i, o, u) ein 'b' folgen soll und anschließend nochmal der besagte Vokal. Der so neu entstehende Satz wird in ein neues Char Feld geschrieben, dessen Referenz anschließen von der Mthode zurückgegeben werden soll. Beispiel zur Umformung:
Aus: auto ist toll
wird: abaubutobo ibist toboll
wenn ich folgenden code kompilieren will:
Code:
class Aufgabe35{
public static void main(String [] args){
char [] satz = {'a', 'b', 'o', 'r'};
char [] neu = spielen(satz);
for(int i = 0; i < neu.length; i++){
System.out.println("Ausgabe: " + neu[i]);
} //endofr
} //endmathod main
public static char [] spielen(char [] satz){
char [] neu;
int n = 0;
for (int i = 0;i < satz.length; i++){
switch (satz[i]){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':{
neu[n++] = satz[i];
neu[n++] = 'b';
neu[n++] = satz[i];
break;
}
default : neu[n++] = satz[i];
} //endswitch
} //endfor
return neu;
} //endmethod spielen
} //endclass Aufgabe35
erhalte ich folgenden Fehler:
Code:
Aufgabe35.java:35: variable neu might not have been initialized
neu[n++] = satz[i];
^
Aufgabe35.java:40: variable neu might not have been initialized
default : neu[n++] = satz[i];
^
Aufgabe35.java:45: variable neu might not have been initialized
return neu;
^
3 errors
warum?
irgendwelche tollen array-methoden aus irgendwelches zusätzlichen Klassen darf ich bei der Aufgabe nicht verwenden
aber die Prüfung: if (vokal) fällt eben leider nicht so kanpp aus, ich müsste dann ja noch ne switch-anweisung hinschustern, dann wirds lang. blöd, ungewollt...
1. Array "neu" mit initialer größe anlegen
2. Wenn "neu" voll: Array "temp" mit gleicher größe anlegen
3. Inhalt von "neu" in "temp" kopieren"
4. "neu" zerstören und als größeres Array anlegen
5. Inhalt von "temp" wieder in "neu" zurückkopieren
6. weitermachen
7. das ganze natürlich wiederholend, bis "satz" abgearbeitet ist
Nö, genauso ist es "theoretisch" auch. Es muss allerdings dazu neu erzeugt werden. Was meinst du wie java.util.ArrayList funktioniert
Mit anlegen einer initialen größe war gemeint, dass man bewusst eine bestimmte Größe festlegt und nicht durch Kopie von einem gefüllten Array die größe automatisch bestimmen lässt. Fand ich irgendwie einfacher in einer Schleife unterzubringen :wink: