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.
publicclassZeichenketteimplementsAufzaehlung{protectedString meineZeichenkette;protectedint pos;publicZeichenkette(String meineZeichenkette){this.meineZeichenkette = meineZeichenkette;}/*
* Vergleicht, ob es in in er Zeichenkette ein weiteres Zeichen gibt
*/@OverridepublicbooleanhatNochElement(){int[] anzBuchstaben =newint[meineZeichenkette.length()+1];char[] positionsKontrolle =newchar[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++;returntrue;}elsereturnfalse;}/*
* Gibt nacheinander den nächsten Buchstaben des Wortes aus
*/@OverridepublicObjectnaechstesElement(){char buchstabe = meineZeichenkette.charAt(pos-1);return buchstabe;}}
BTW: das ist die mit Abstand komplizierteste Lösung, zum Iterieren über einen String, die ich je gesehen habe.
Schon interessant, dass man einen 5-Zeiler so aufblähen kann...
BTW: das ist die mit Abstand komplizierteste Lösung, zum Iterieren über einen String, die ich je gesehen habe.
Schon interessant, dass man einen 5-Zeiler so aufblähen kann...
Tut mir leid, dass ich Anfänger bin
Ich wusste mir halt nicht anders zuhelfen. Wäre mal nett, wenn ich erfahren könnte, wie der 5-Zeiler aussieht, damit ich mich verbessern kann.
for(char zeichen : string.toCharArray()){if(Character.isWhitespace(zeichen)){System.out.print("\n");// Zeileunmbruch, je einer pro Leerzeichen...}else{System.out.print(zeichen);}}// Klammern zählen nicht... ;o)
Dass ist nicht mein Problem...
Gleich mit 2 Klassen auf diese Problem zu schießen ist "etwas" übertrieben. Von Anfängern hätte ich erst mal weniger komplexe Ansätze erwartet.
Der Punkt ist: Man schreibt nur dann eigene Klassen, wenn man bei anderen nichts besseres findet...
Java:
for(char zeichen : string.toCharArray()){if(Character.isWhitespace(zeichen)){System.out.print("\n");// Zeileunmbruch, je einer pro Leerzeichen...}else{System.out.print(zeichen);}}// Klammern zählen nicht... ;o)