我正在创建一个程序,我必须在其中读取特殊的文本文件。我从指定的单词到另一个指定的单词(不包括这些单词)阅读文本时遇到问题。使用扫描仪是解决此问题的好方法吗? 我的意思是这样的:
“ text1
text2
text3
text4
text5”
我想从中获取带有“ text2 text3 text4”的字符串。
我尝试使用useDelimeter,但无法弄清楚如何将其应用于这种情况。我创建了一种可以跳过行的方法,但是从长远来看,这并不是一个好的解决方案,它仅适用于一个指定的文件。
这是我想在这里做的方法之一
private String readFile3(File file) {
try {
Scanner sc = new Scanner(file);
//skipLine(sc, 8);
sc.useDelimiter("R");
String sentence = sc.next();
textAreaD.setText(sentence);
} catch (FileNotFoundException e) {
System.out.println("No file");
}
return null;
}
答案 0 :(得分:0)
怎么样呢?
private String readFile3(File file) {
try {
Scanner sc = new Scanner(file);
boolean save = false;
String sentence = "";
String temp = "";
while (sc.hasNextLine()) {
temp = sc.nextLine();
if (sentence.contains("text1")) {
if (!save) {
temp = sc.nextLine();
}
save = true;
}
if (sentence.contains("text5")) {
save = false;
}
if (save) {
sentence = sentence + temp;
}
}
// skipLine(sc, 8);
//sc.useDelimiter("R");
sentence = sentence.replaceAll("\\n", "");
textAreaD.setText(sentence);
} catch (FileNotFoundException e) {
System.out.println("No file");
}
return null;
}
应读出“ text1”和“ text5”之间的所有字符串。也许您还需要进行更多格式化,并检查“ text1”是否出现了多次,如果您也想保存它,但是我希望它能对您有所帮助。