Hallo
Ich muss bei meinen Programm noch eine Methode implementieren, mit der ich die Wörter eines zuvor in ein Byte-Array eingelesenen Text in umgekehrter Reihenfolge ausgeben muss, allerdings funktioniert das nicht.
Wenn ich ein einzelnes Wort eingebe, geht es, allerdings gibt er auch zig kästchen aus, d.h. ich müsste dem chars-Array eine abhängige Länge zuweisen.
Und wenn ich mehrere Wörter eingebe, wird gar nichts ausgeben. Tüftle nun schon den ganzen Abend und komme einfach nicht weiter.
Ich muss bei meinen Programm noch eine Methode implementieren, mit der ich die Wörter eines zuvor in ein Byte-Array eingelesenen Text in umgekehrter Reihenfolge ausgeben muss, allerdings funktioniert das nicht.
Wenn ich ein einzelnes Wort eingebe, geht es, allerdings gibt er auch zig kästchen aus, d.h. ich müsste dem chars-Array eine abhängige Länge zuweisen.
Und wenn ich mehrere Wörter eingebe, wird gar nichts ausgeben. Tüftle nun schon den ganzen Abend und komme einfach nicht weiter.
Code:
package ab4;
import java.io.IOException;
// import util.simpleIO.In;
import util.simpleIO.Out;
public class aufgabe3 {
public static void main (String[] args){
Out.println("Bitte Geben Sie einen Satz ein: ");
byte[] chars;
int[] sum;
//Text in Byte-Array einlesen
chars=fill();
//Summieren der Vokale
sum=vocals(chars);
//Ausgabe der Anzahl der Vokale
ausgabe(sum);
Out.println("Umgekehrter Text: ");
String str;
str=create(chars);
String satz;
satz=umdrehen(str);
Out.println(satz);
}
public static byte [] fill(){
int MAXCHARS=100;
int count=0;
byte[] chars;
chars=new byte[MAXCHARS];
try {
count = System.in.read(chars, 0, MAXCHARS);
} catch (IOException e) {
e.printStackTrace();
}
return chars;
}
public static int [] vocals(byte chars[]){
int i;
int[] vocals;
vocals=new int[5];
for(i=0;i<chars.length;i++){
switch (chars[i]){
case 97:case 65: //Summieren von A
vocals[0]=vocals[0]+1;
break;
case 101:case 69: //Summieren von E
vocals[1]=vocals[1]+1;
break;
case 105:case 73: //Summieren von I
vocals[2]=vocals[2]+1;
break;
case 111:case 79: //Summieren von O
vocals[3]=vocals[3]+1;
break;
case 117:case 85: //Summieren von U
vocals[4]=vocals[4]+1;
break;
}
}
return vocals;
}
static void ausgabe(int sum[]){
Out.print("Vokale a: "+sum[0]+", e: "+sum[1]+", i: "+sum[2]+", o: "+sum[3]+", u: "+sum[4]);
}
public static String create(byte[] array){;
String str;
str=new String(array);
return str;
}
public static String umdrehen(String str){
String[] woerter = str.split(" ");
int i;
String satz="";
for(i=(woerter.length-1);i==0;i--){
satz=satz+woerter[i];
}
return satz;
}
}