Ich versuche, ein einfaches Programm zu machen, das Textdateien liest und bestimmte Daten daraus abruft. Im folgenden Code versuche ich eine Position zu bekommen, wo ich ein Zitat habe. Sagen wir also, File.txt Inhalte sind:Scanner und Teilzeichenfolge
aaaaaaa"bbbbb"ccccc
ddd"ee"ffff
g"hhhhhh"iii"gggg"
Also sollte ich mit allen Positionen von Zitaten eine Array-Liste haben (al = [7, 13, 3, 6, 1, 8, 12, 17]). Das Problem ist, dass ich nicht scheinen kann, eine Teilstring aus jeder Zeile, die im Lesen von Text. Ich möchte den Text erhalten, der in Anführungszeichen steht. Ausgabe sollte in etwa so aussehen:
bbbbb
ee
hhhhhh
gggg
Code:
File temp = new File("file.txt");
Scanner file = new Scanner(temp);
ArrayList<Integer> al = new ArrayList<Integer>();
while (file.hasNext()) {
String k = file.next();
//System.out.println(k);
int position = 0;
while (position >= 0) {
position = k.indexOf('"', position + 1);
//System.out.println(position);
al.add(position);
}
System.out.println(k.substring(position,position+1));
}
Und was bekommen Sie mit Ihrem Programm ?, Was ist das Problem? –
Wenn Sie die Strings innerhalb der Anführungszeichen haben wollen, sollten Sie Regex verwenden. – Jens
Regex mit 'Pattern' und' Matcher' sollte nützlich sein, falls Sie mehr als 2 Quotesätze in Ihren Strings haben. Gibt es einen Grund, warum Sie Regex hier nicht benutzen? – TheLostMind