これは、経験豊富なプログラマーにとっては比較的迅速な修正になるはずです...テキストファイルを入力し、「>」または「+」で始まらないすべての行の前に「#」を付けたかっただけです。問題は、例外が発生していることです。.charAt(0)が文字列の範囲外です。しかし、コンソールがその行を実行する前に、文字列をテキストファイルから読み取る必要があります-何が欠けていますか?以前に宣言されたlineFromFileStringが空にならないように、何かの行を挿入する必要がありますか?どうしたらいいのかわからない…
java.io.*をインポートします。
パブリッククラスFirstTry{
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// Declare variables corresponding to names of i/o files
String oldFilename = "";
String newFilename = "";
// Console input of i/o filenames
BufferedReader cin;
cin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("What is the input text? Include path and .txt extension) ");
oldFilename = cin.readLine();
System.out.print(oldFilename);
System.out.println("What is the output text? Include path and .txt extension) ");
newFilename = cin.readLine();
System.out.print(newFilename);
cin.close();
// Read text from old file,
BufferedReader fin;
fin = new BufferedReader(new FileReader(oldFilename));
while (fin.ready())
{
String lineFromFile;
lineFromFile = fin.readLine();
System.out.println(lineFromFile);
if (lineFromFile.charAt(0) != '>' || lineFromFile.charAt(0) != '+')
{
PrintWriter fout;
fout = new PrintWriter(new FileWriter(newFilename));
fout.println('#' + lineFromFile);
fout.close();
}
} // while
fin.close();
System.out.print("Text processing complete.");
}//main
}//パブリッククラス