Wie kann ich mit Java prüfen, ob ein Satz in einer Textdatei enthalten ist?
else if (event.getSource() == blesen) {
FileReader fr = null;
try {
String text;
String fileName = "D:/Flo/password/loggin.txt";
File file = new File(fileName);
int len = (int)file.length();
char[] buf = new char[len];
fr = new FileReader(file);
fr.read(buf);
text = new String(buf);
// ab hier JFrame
JFrame auslesen = new JFrame("Output Dialog");
auslesen.setLayout(null);
auslesen.setVisible(true);
auslesen.setSize(290, 250);
auslesen.setResizable(false);
auslesen.setTitle("Auslesen");
auslesen.setDefaultCloseOperation(EXIT_ON_CLOSE);
auslesen.setLocationRelativeTo(null);
// bis hier her JFrame | ab hier dann eingabe feld
JTextField plattlesen = new JTextField();
JLabel welcheplatt = new JLabel("<html>Welche Loggin Daten <p /"
+ ">möchtestdu wissen?</p"
+ ">Plattform:</html>");
auslesen.add(bfertiglesen);
bfertiglesen.setBounds(1, 100, 100, 30);
auslesen.add(plattlesen);
plattlesen.setBounds(1, 70, 100, 20);
auslesen.add(welcheplatt);
welcheplatt.setBounds(1, 1, 200, 50);
slesen = plattlesen.getText();
System.out.println(text);
}
catch(IOException ex) {
System.out.println(ex);
}
finally {
try {
if (fr!= null) fr.close();
}
catch(Exception ex) {
}
}
}
else if (event.getSource() == bfertiglesen) {
slesen = plattlesen.getText();
if (text.indexOf(slesen)) {
System.out.println(slesen);
}
}
Ich möchte prüfen, ob ein eingegebener Satz in einem Textdokument enthalten ist.
Wie mache ich das am besten?
4 Antworten
Hallo LordDerDunkel,
ich würde so etwas mithilfe von java.nio statt java.io überprüfen. Es geht natürlich mit beidem, aber ich habe mich inzwischen an ersteres gewöhnt.
Ich weiß nicht genau, wie du deine Ausgaben haben willst, deshalb hier nur, wie ich es grundsätzlich machen würde:
String text;
String fileName = "D:/Flo/password/loggin.txt";
Path file = Paths.get(fileName);
try {
text = new String(Files.readAllBytes(file));
boolean satzIstEnthalten = text.contains("Dein Satz.");
} catch (IOException e) {
e.printStackTrace();
}
satzIstEnthalten würde nun true sein, wenn in dem Dokument "Dein Satz." steht. Eventuell musst du bei dir noch auf die Codierung achten, also ob das Ganze in UTF-8 ist, beispielsweise. Sonst steht in dem String text dann was anderes drin als in der Datei.
LG
Hallo LordDerDunkel,
reguläre Ausdrücke sollten dir helfen: http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_04_007.htm#mj26fc5cf60311afbddd72295cdd646a48
Ansonsten könntest Du deinen Satz mit einem StringTokenizer am Leerzeichen zerlegen. Dann gehst Du den Text Wort für Wort durch und prüfst wo ein Wort mit dem ersten Wort deines Satzes übereinstimmt. Hast Du einen Treffer musst Du die folgenden Worte ebenfalls vergleichen.
Gruß und viel Spaß