Hallo Leute,
hab da ein kleines Problem. Unzwar will ich durch eine Zeichenkette(Buchstabe für Buchstabe) laufen und dann das Wort ausgeben. Jedoch habe ich das Problem, dass wenn ich einen Buchstaben der schonmal aufgetaucht ist eingebe, dass das Wort nicht mehr komplett ausgegeben wird.
Beispiele:
Gebe ich "Halo" als Zeichenkette, dann funktioniert's.
Aber sobald ich "Hallo" oder "haloa" oder ähnliches eingebe, wo ein Buchstabe zum zweiten mal auftaucht wird's abgeschnitten. Genau ist das, wenn ich zweitmal das Leerzeichen nutze.
Hoffe konnte es ausführlich erklären.
Danke schonmal im voraus
MfG
Hier ist meine main():
Das hier ist die Klasse:
hab da ein kleines Problem. Unzwar will ich durch eine Zeichenkette(Buchstabe für Buchstabe) laufen und dann das Wort ausgeben. Jedoch habe ich das Problem, dass wenn ich einen Buchstaben der schonmal aufgetaucht ist eingebe, dass das Wort nicht mehr komplett ausgegeben wird.
Beispiele:
Gebe ich "Halo" als Zeichenkette, dann funktioniert's.
Aber sobald ich "Hallo" oder "haloa" oder ähnliches eingebe, wo ein Buchstabe zum zweiten mal auftaucht wird's abgeschnitten. Genau ist das, wenn ich zweitmal das Leerzeichen nutze.
Hoffe konnte es ausführlich erklären.
Danke schonmal im voraus
MfG
Hier ist meine main():
Java:
public class AufzaehlungsTest {
public static void main(String[] args) {
Zeichenkette zk = new Zeichenkette("Haloa");
while(zk.hatNochElement())
{
System.out.print(zk.naechstesElement() + " ");
}
}
}
Das hier ist die Klasse:
Java:
public class Zeichenkette implements Aufzaehlung{
protected String meineZeichenkette;
protected int pos;
public Zeichenkette(String meineZeichenkette) {
this.meineZeichenkette = meineZeichenkette;
}
/*
* Vergleicht, ob es in in er Zeichenkette ein weiteres Zeichen gibt
*/
@Override
public boolean hatNochElement() {
int[] anzBuchstaben = new int[meineZeichenkette.length()+1];
char[] positionsKontrolle = new char[meineZeichenkette.length()+1];
assert(pos < meineZeichenkette.length());
for(int i = 0; i < meineZeichenkette.length();i++)
{
anzBuchstaben[i] = i;
positionsKontrolle[i] = meineZeichenkette.charAt(i);
}
if(meineZeichenkette.indexOf(positionsKontrolle[pos]) == anzBuchstaben[pos] && pos < meineZeichenkette.length())
{
pos++;
return true;
}
else
return false;
}
/*
* Gibt nacheinander den nächsten Buchstaben des Wortes aus
*/
@Override
public Object naechstesElement() {
char buchstabe = meineZeichenkette.charAt(pos-1);
return buchstabe;
}
}
Zuletzt bearbeitet: