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