Ich habe ein Programm mit zwei Klassen.
Dies ist die Klasse mit der Mainmethode, es wird hier ein Textdokument eingelesen.
Die yield-Methode ist in der anderen Klasse:
Meine Frage betrifft nu die Klasse NGram, dort die Zeilen 40-42:
Ich will aus der ArrayList words alle Elemente heraushaben, die ein oder mehrere Leerzeichen, also " ", " " usw.enthalten.
Nichtsdestotrotz wird
bei diesem eingelesenen Text:
folgendes ausgedruckt:
Ich
habe
nun
einen
Text
-
das
ist
wahr
-
in
dem
New
Nun frage ich mich: Woran liegt denn das??
Dies ist die Klasse mit der Mainmethode, es wird hier ein Textdokument eingelesen.
Java:
import java.io.*;
public class NGramMain{
/**
* @param args
*/
public static void main (String[] args) {
String lines = "";
BufferedReader br = null;
try{
br = new BufferedReader(new FileReader("C:\\ ...\\meinText.txt"));
String line = br.readLine();
while(line != null){
lines += line;
line = br.readLine();}
br.close();
}catch(IOException e){e.printStackTrace();}
NGram ng = new NGram(args[0], lines);
ng.yield();
}
}
Die yield-Methode ist in der anderen Klasse:
Java:
import java.lang.System;
import java.util.regex.*;
import java.util.ArrayList;
public class NGram {
private String NUM, text;
public NGram(String NUM, String text){
this.NUM = NUM;
this.text = text;
}
public int getNUM(){ int i = Integer.parseInt(this.NUM);
return i; }
public String gettext(){
return this.text; }
public void yield(){
int i = this.getNUM();
String t = this.gettext();
//Here, I bereave the String from unnecessary punctuation.
String punctuation = ".,:;_!?)(";
for(int a=0;a<punctuation.length();a++){
t = t.replace(punctuation.substring(a,a+1), "");}
ArrayList<String> words = new ArrayList<String>();
for(String word : t.split(" ")){ words.add(word); };
for(int d=0;d<words.size();d++){
Matcher empty = Pattern.compile("[\\s]+").matcher(words.get(d));
if(empty.matches()){ words.remove(d); }
}
for(int a=0;a<(words.size()-i);a++){
System.out.println(words.get(a));}
}
}
Meine Frage betrifft nu die Klasse NGram, dort die Zeilen 40-42:
Ich will aus der ArrayList words alle Elemente heraushaben, die ein oder mehrere Leerzeichen, also " ", " " usw.enthalten.
Nichtsdestotrotz wird
bei diesem eingelesenen Text:
Ich habe nun einen Text - das ist wahr -, in dem New York vorkommt.
folgendes ausgedruckt:
Ich
habe
nun
einen
Text
-
das
ist
wahr
-
in
dem
New
Nun frage ich mich: Woran liegt denn das??