Hallo,
ich hab hier eine kleine Suche geschrieben, die einfach nur nach char Zeichen in einem Array sucht und die Position sind dann merkt und später ausgibt. Das Problem ist aber jetzt, dass er die wenn ein Zeichen mit der Position 4 oder mehr immer als 0 speichert. Die Positionen 1-3 speichert er problemlos im zweiten Int-Array. Könnt ihr mir vlt sagen wo mein fehler liegt?
Vielen Dank für eure Hilfe, weiß echt nicht wo der Fehler ist.
Mfg ska3k
ich hab hier eine kleine Suche geschrieben, die einfach nur nach char Zeichen in einem Array sucht und die Position sind dann merkt und später ausgibt. Das Problem ist aber jetzt, dass er die wenn ein Zeichen mit der Position 4 oder mehr immer als 0 speichert. Die Positionen 1-3 speichert er problemlos im zweiten Int-Array. Könnt ihr mir vlt sagen wo mein fehler liegt?
Code:
public class suche {
public static void main(String[] args) {
char[] zeichen;
int[] gefunden;
char whl,ein;
final byte ZU_ERZEUGENDE_ZAHLEN=20;
zeichen=erzeugen(ZU_ERZEUGENDE_ZAHLEN);
ein=input();
gefunden=suche(ein,ZU_ERZEUGENDE_ZAHLEN,zeichen);
ausgabe(gefunden);
[...]
}
private static char[] erzeugen(byte zahlen) {
char[] z;
int i,n=1;
z=new char[zahlen];
do {
if (n<10) {
System.out.print("0"+n+" ");
} else {
System.out.print(n+" ");
}
n++;
} while (n<=zahlen);
System.out.println();
for (i=0;i<=zahlen-1;i++) {
z[i]=(char)Tools.zufall(97,122);
System.out.print(z[i]+" ");
}
return z;
}
private static char input() {
char zeichen;
System.out.println("\n\nNach welchen Zeichen soll gesucht werden?");
System.out.print("Zeichen: ");
zeichen=Eingabe.readChar();
return zeichen;
}
private static int[] suche(char suche, byte ZUFALL, char[] zeichen) {
int[] ein;
byte i,n=0;
for (i=0;i<ZUFALL;i++) {
if (zeichen[i]==suche) {
n++;
}
}
ein=new int[n];
n=0;
for (i=0;i<=ein.length;i++) {
if (suche==zeichen[i]) {
ein[n]=i;
System.out.println(i+"| "); //Zum testen
n++;
}
}
return ein;
}
private static void ausgabe(int[] g) {
int i;
i=0;
System.out.print("\nGefunden auf Position: ");
do {
if (g[i]+1<10) {
System.out.print("0"+(g[i]+1)+" ");
} else {
System.out.print(g[i]+1+" ");
}
i++;
} while (i<g.length);
}
}
Vielen Dank für eure Hilfe, weiß echt nicht wo der Fehler ist.
Mfg ska3k