skip to main content

kiesler.at

Anführungszeichen zusammenfassen
updated by rck, 2004-10-03

Diesmal habe ich mich an einem in mehrerer Hinsicht ungewöhlichen Programm versucht: die Aufgabenstellung ist tw. unklar und schlichtweg falsch; das Programm ergibt keinen Sinn; es gibt bereits Lösungen dazu. Die Beispielnummer lautet diesmal 1025

1 | 2 | 3 | 4 | 5 | 6

extractWord()

Die eigentliche "Anführungszeichenzusammenführungsmethode" ist ziemlich kompakt geworden:

107         public static String extractWord(String s)
108                 throws Exception
109         {
110                 String n="";
111                 s += " ";       // damit der s.charAt(++i)-Trick funktioniert
112 
113                 for(int i=0; i<s.length()-1; i++) {
114                         if(s.charAt(i) == '"')
115                                 if(s.charAt(++i) != '"')
116                                         throw new Exception("Alleinestehendes "+
117                                                 "Anführungszeichen!");
118 
119                         checkValidChar(s.charAt(i));
120 
121                         n += s.charAt(i);
122                 }
123 
124                 return(n);
125         }

Beschreibung extractWord()

Die Strategie: Den String in einen neuen String umtopfen. Wenn wir auf ein Anführungszeichen stoßen, dieses überspringen.

110 n wird unser neuer String, in dem dann das Endergebnis steht.

111 damit wir ein abschließendes, alleinestehendes " erkennen, hängen wir hier ein Leerzeichen an.

113 Wir gehen nun alle Zeichen -- bis auf das abschließende Leerzeichen -- durch.

114 stoßen wir auf ein Anführungszeichen...

115 ...und ist das nächste keines...

116-117 gibt's eine Exception. Das klappt so nur, weil wir einerseits ein Leerzeichen angehängt haben (sonst könnte der String zu kurz sein) und weil wir ein abschließendes Anführungszeichen für die Ausgabe des nächsten Worts ggf. bereits entfernt haben.

Klingt nicht nur verwirrend, macht auch nicht viel Sinn, das mit der Ausgabe.

119 Hier prüfen wir noch, ob das Zeichen überhaupt gültig ist...

121 ...und fügen es an unseren neuen String.

124 nachdem wir alle Zeichen durch sind, können wir das Ergebnis zurückliefern.

1 | 2 | 3 | 4 | 5 | 6



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004