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
Mein Code:
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
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
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