Ich habe eine .txt-Datei, die den folgenden, simplen und kurzen Text enthält (siehe Anhang).
Ich schreibe an einer größeren Anwendung, und dabei bin ich gerade damit beschäftigt, einen Scanner zu schreiben, der mir aber offenbar aus irgendwelchen Gründen nicht die alle Wörter der Textdatei einliest. Ich habe das relevante Codesnippet aus dem Programm extrahiert und in einer Testdatei (Sandbox nennt man sowas glaube ich) laufen lassen, das Problem war unverändert:
Alles ab Zeile 18 ist im Grunde gar nicht mehr wichtig...
Problem:
Wenn ich das Programm kompiliere und dann folgendes eingebe:
dann erhalte ich als Ergebnis:
Das dürfte doch gar nicht sein?????:L
Ich schreibe mal ich und ab rein! Gebt acht - Acht sollt ihr geben.
Ich schreibe an einer größeren Anwendung, und dabei bin ich gerade damit beschäftigt, einen Scanner zu schreiben, der mir aber offenbar aus irgendwelchen Gründen nicht die alle Wörter der Textdatei einliest. Ich habe das relevante Codesnippet aus dem Programm extrahiert und in einer Testdatei (Sandbox nennt man sowas glaube ich) laufen lassen, das Problem war unverändert:
Alles ab Zeile 18 ist im Grunde gar nicht mehr wichtig...
Java:
import java.util.*;
import java.util.regex.*;
class Y{
public static void main(String[] args){
ArrayList<String> text = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
System.out.println(sc.next());
//Hier will ich alles, ws ich über Input redirect übergeben habe, gleich drucken.
//Ich will hier mit dem Input was machen, aber das spielt fuer meine Frage keine Rolle!!
Matcher m1 = Pattern.compile("[a-zA-Z]+\\p{Punct}*[a-zA-Z]+").matcher(sc.next());
if(m1.lookingAt()){
Matcher m2 = Pattern.compile("([a-zA-Z]+)\\p{Punct}+([a-zA-Z]+)").matcher(m1.group());
if(m2.matches()){
text.add(m2.group(0).toLowerCase());
text.add(m2.group(1).toLowerCase()); }
if(! m2.matches()){
text.add(m1.group().toLowerCase());
}
}
}
}
}
Problem:
Wenn ich das Programm kompiliere und dann folgendes eingebe:
Y.java < look.txt
dann erhalte ich als Ergebnis:
Ich
mal
und
rein!
acht
Acht
ihr
Das dürfte doch gar nicht sein?????:L