-5
我有一個多行文件。我的Java程序必須從它讀取每三行並將它們格式化爲一行並將其寫入另一個文件。我如何告訴忽略文件中的一些行?
例如: 文件程序讀取來自:用於讀寫文本文件的Java程序
第一,第二,第三
布拉斯的Blad,Blaff,
拖把,熔點,燮
它必須打開這三行:
首先,晚飯,Blaff
它是否正確,但我如何告訴程序忽略某些特定單詞的行,例如,如果它有特定的單詞,如其中一行中的「sub」?
代碼的例子如下:
public static void main(String[] args) throws Exception {
String text = "";
String changedText = "";
String first = "", second = "", third = "";
int outerCounter = 0;
int innerCounter = 0;
int arturCounter = 0;
String temp = "";
//first, we read data from file
java.io.File file = new java.io.File("test.txt");
Scanner input = new Scanner(file);
input.useDelimiter("\r");
while(input.hasNextLine()) {
text = input.next();
outerCounter += 1;
innerCounter = 0;
for (String string : text.split(",")) {
innerCounter += 1;
if(outerCounter == 1) {
second = string;
break;
}
else if(outerCounter == 2 && innerCounter == 3) {
third = string;
}
else if(outerCounter == 3 && innerCounter == 3) {
first = string;
outerCounter = 0;
second = second.replace("\n", "").replace("\r", ""); //very important part, solves the problem with new line!
changedText += second + "," + first + "," + third + "\r" + "\n";
}
}
}
//second, we write obtained data to another file
//PrintWriter creates the file
java.io.PrintWriter output = new java.io.PrintWriter("testOutput.txt");
//write formatted output to the file
output.println(changedText);
//close the file
output.close();
System.out.println(changedText);
}
}
預先感謝您的幫助。
你的問題很混亂。你能澄清一下你的輸入是什麼以及它應該如何輸出?你想要做什麼轉變? – ControlAltDel
'if(text.contains(「sub」)){continue; }'順便說一句,在你的情況下,你應該使用'input.nextLine()'而不是'input.next()'。 –
那麼,ControlAltDel,你有什麼困惑?@Jaroslaw似乎沒有這個問題。謝謝你的反饋Jaroslaw。我不明白爲什麼我的問題得到負面的利率,我只是一個初學者,像禿鷲一樣的stackoverflow社區攻擊我的無辜的嘗試,以獲得幫助 – Trex87