Sätze aus .txt-Dateien lesen

chriss_2oo4

Erfahrenes Mitglied
Hi,

ich bin gerade dabei alle Sätze aus einer .txt-Datei zu ermitteln, also die Textdatei in die einzelnen Sätze aufzuteilen. Während meiner Implementierung tritt ein seltsamer Fehler auf, den ich mir nicht erklären kann, und zwar wird immer nur bei jedem zweiten Satz getrennt :confused:

Mein Code:

Code:
                         ...
			 BreakIterator iterator = BreakIterator.getSentenceInstance( Locale.GERMAN );
			 try {
		    	  
				 BufferedReader reader = new BufferedReader(new FileReader(file));
				
				 while ((strLine = reader.readLine()) != null) 
				 {
		    		  System.out.println("Line: " + strLine);
		    		  
		    		  
		    		  iterator.setText( strLine );
		    		  int iLast = iterator.first();
		    		  int iNext = iterator.next();  
		    		  for ( ; iNext != BreakIterator.DONE; iNext = iterator.next() )
		    		  {
		    			  String strPart = strLine.subSequence( iLast, iNext ).toString();
		    			  System.out.println("Part: " +strPart);
		    			  if(strPart.endsWith(".") || strPart.endsWith(".\n") || strPart.endsWith(".\r\n"))
		    			  {
		    				  strSentence.append(strPart);
		    				  System.out.println("Satz: " + strSentence.toString());
		    				  strSentence = new StringBuffer();
		    			  }
		    			  else if(strPart.endsWith("!") || strPart.endsWith("!\n") || strPart.endsWith("!\r\n"))
		    			  {
		    				  strSentence.append(strPart);
		    				  //CREATEE UPDATE
		    				  System.out.println("Satz: " + strSentence.toString());
		    				  strSentence = new StringBuffer();
		    				  
		    			  }
		    			  else if(strPart.endsWith("?") || strPart.endsWith("?\n") || strPart.endsWith("?\r\n"))
		    			  {
		    				  strSentence.append(strPart);
		    				  //CREATEE UPDATE
		    				  System.out.println("Satz: " + strSentence.toString());
		    				  strSentence = new StringBuffer();
		    			  }
		    			  else
		    			  {
		    				  strSentence.append(strPart);
		    			  }
		    		      iLast = iNext;
		    		  }	    		  
		    	  }
		        reader.close();
		      }
		      catch (IOException ex1) {
		    	  ex1.printStackTrace();
		      }

Wenn ich debugge, dann wird jedes Mal die if-Abfrage übersprungen, egal ob ein . ein ? oder ein ! am ende des Satzes ist.

Wo liegt der Fehler?

Lg Chriss
 
Hi,

hab den Fehler selbst gefunden (endlich). Das Problem liegt daran, dass immer noch ein Leerzeichen an das Ende des Satzes angehängt wird. Also "Das ist ein Satz. "

Keine Anhnung warum, aber vielleicht hat ja jemand mal das selbe Problem

Lg Chriss
 
Zurück