文字列を.txtファイルに置き換えようとしています。私は自分のコードを実行すると しかし、プログラムはちょうどここで、スペース 含むラインのすべてを削除し、私のコードです:replaceAllで文字列変数を使用することは可能ですか?
I drink Java
I sleep Java
This is test string 1
This is test string 20000
file.txtを
public static void main(String[] args) {
try {
String str;
String temp = "";
String oldtext = "";
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
while ((str = br.readLine()) != null) {
oldtext += str + "\r\n";
if (str.equals("I drink Java")) {
temp = br.readLine();
System.out.println(temp);
}
}
br.close();
String newtext = oldtext.replaceAll(temp, "Hello");
FileWriter writer = new FileWriter("file.txt");
writer.write(newtext);
writer.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
私は「私を交換しようとしています文字列変数tempを使用して「Javaをスリープする」行を「Hello」に設定します。私はそれがString newtext = oldtext.replaceAll("I sleep Java","Hello");
を使用して動作することを認識していますが、それは私のやり方と同じようにできるかどうかを知りたいのです。そして、はいの場合、誰が私が間違っているか教えてくれますか? ありがとう!行は、あなたが次の行を読んで、temp
にそれを保存し、 「私は、Javaを飲む」である場合
while ((str = br.readLine()) != null) { oldtext += str + "\r\n"; if (str.equals("I drink Java")) { temp = br.readLine(); System.out.println(temp); } }
::)
replaceAll()は、正規表現を使用する場合に便利です。あなたはそうしない。代わりにreplace()を使用してください。 –
あなたはそれを働かせましたか? – ItamarG3