Hallo zusammen,
versuche seit Stunden eine Übungsaufgabe hinzubekommen, hab aber momentan anscheinend ein Brett vor dem Kopf.
Aufgabenstellung ist folgende: Programmierung einer Methode, die aus einem String-Feld mehrere Worte alle Groß- in Kleinbuchstaben wandelt, sowie alle Sonderzeichen in eine 9 umwandelt. Das klappt auch soweit.
Allerdings bekomme ich es einfach nicht gebacken, die chars nach der Umwandlung wieder in ein String-Feld umzuwandeln (sprich: wieder zu den ursprünglichen Wörten zusammenzufassen). So, wie ich es derzeit habe, wird jeweils nur ein Buchstabe pro Wort in den jeweiligen String geschrieben. Ich vermute mal, es liegt an der äußeren Schleife - aber ich sehe einfach nicht, was ich falsch mache
Kann mir jemand helfen?
Die Methode, um die es geht:
Die dazugehörige main() Methode:
versuche seit Stunden eine Übungsaufgabe hinzubekommen, hab aber momentan anscheinend ein Brett vor dem Kopf.
Aufgabenstellung ist folgende: Programmierung einer Methode, die aus einem String-Feld mehrere Worte alle Groß- in Kleinbuchstaben wandelt, sowie alle Sonderzeichen in eine 9 umwandelt. Das klappt auch soweit.
Allerdings bekomme ich es einfach nicht gebacken, die chars nach der Umwandlung wieder in ein String-Feld umzuwandeln (sprich: wieder zu den ursprünglichen Wörten zusammenzufassen). So, wie ich es derzeit habe, wird jeweils nur ein Buchstabe pro Wort in den jeweiligen String geschrieben. Ich vermute mal, es liegt an der äußeren Schleife - aber ich sehe einfach nicht, was ich falsch mache
Kann mir jemand helfen?
Die Methode, um die es geht:
Code:
class TRANSFORMATION18
{
static String[] trafo( String wfeld[] )
{
String wzulfeld[];
char BS_anf[], BS_end[];
int BS_int[], j, k;
wzulfeld=new String[wfeld.length];
for (k=0; k<wfeld.length; k++) /*1 Durchlauf pro Wort*/
{
BS_anf=wfeld[k].toCharArray(); /*Umwandlung Wort in Zeichenfeld*/
BS_int=new int[BS_anf.length]; /*Zuweisung Speicherplatz*/
BS_end=new char[BS_anf.length]; /*Zuweisung Speicherplatz*/
for (j=0; j<BS_anf.length; j++) /*1 Durchlauf pro Zeichen*/
{
BS_int[j]=(int)BS_anf[j]; /*Umwandlung char -> int*/
{
if (BS_int[j]<97) /*Umwandlung Großbuchstaben...*/
BS_int[j]=BS_int[j]+32; /*...in Kleinbuchstaben*/
}
if (BS_int[j]>122 | BS_int[j]<97) /*Umwandlung aller anderer...*/
{ /*...Zeichen in '9'*/
BS_int[j]='9';
}
BS_end[j]=(char)BS_int[j]; /*Umwandlung int -> char*/
}
wzulfeld[k]=String.valueOf(BS_end[k]); /*Umwandlung char -> string*/
System.out.println(wzulfeld[k]); /*Ausgabe Wort (string)*/
}
return wzulfeld;
}
}
Die dazugehörige main() Methode:
Code:
class Programm18
{
public static void main (String args[])
{
String wfeld[];
int i=1, anzahl;
do
{ System.out.print("Bitte geben Sie die Anzahl der Wörter an: ");
anzahl=IO1.einint();
System.out.println();
}
while (anzahl<1);
wfeld=new String[anzahl];
do
{
System.out.print("Bitte geben Sie das "+i+". Wort ein: ");
wfeld[i-1]=IO1.einstring();
i++;
}
while (i<=anzahl);
TRANSFORMATION18.trafo( wfeld );
}
}