如何用特定字符替换 2 个特定字符
How to replace 2 specific characters with a specific charecter
我正在尝试更改字符; aa 到 å,ae 到 ä,oe 到 ö。
我的输入文本文件是
"今天看起来很暖和
也许我们会游泳达尔。这些天游泳很有趣。
我妈妈告诉我,天总是很冷,开车时间 tar 很多时间。"
输出应该是这样的:
"今天湖水暖和
也许我们会在那里游泳。在那里游泳非常有趣。
我妈妈告诉我那里总是很冷,要留出时间 tar 很多时间。"
我的问题是我做错了什么?
感谢您的帮助和评论。
这是我的代码
public static void main(String[] args) throws IOException {
String fileName = JOptionPane.showInputDialog("Enter the file name");
BufferedReader inputCurrent = new BufferedReader(new FileReader(fileName));
PrintWriter outputCurrent = new PrintWriter(new BufferedWriter(new FileWriter("file.txt")));
String row1;
while((row1 = inputCurrent.readLine())!=null)
{
String aa = "å";
String ae = "ä";
String oe = "ö";
if(row1.equals(aa))
{
String replacing = row1.replaceAll(row1, aa);
outputCurrent.println(replacing);
}
if(row1.equals(ae))
{
String replacing = row1.replaceAll(row1, aa);
outputCurrent.println(replacing);
}
if(row1.equals(oe))
{
String replacing = row1.replaceAll(row1, aa);
outputCurrent.println(replacing);
}
}
outputCurrent.close();
inputCurrent.close();
inputCurrent = new BufferedReader(new FileReader("file.txt"));
outputCurrent = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
while(true)
{
String row2 = inputCurrent.readLine();
if(row2==null)
break;
outputCurrent.println(row2);
}
outputCurrent.close();
inputCurrent.close();
}
}
replaceAll
将模式作为第一个参数。你应该使用 replace
。此外,您正在寻找 equals
而您应该这样做 contains
:
if(row1.contains("aa"))
row1.replace("aa", aa);
但是这样它会将所有 "aa" 出现替换为 å
查看此代码:
String input = "sjoen aer varmt idag kanske kommer vi att simma daer. "
+ "Det aer vaeldigt roligt att simma daer. "
+ "Min mamma säger till mig att daer aer alltid kallt och att aaka tid tar mycket tid.";
String output = "sjön är varmt idag kanske kommer vi att simma där. "
+ "Det är väldigt roligt att simma där. "
+ "Min mamma säger till mig att där är alltid kallt och att åka tid tar mycket tid.";
input = input.replace("aa", "å").replace("ae", "ä").replace("oe", "ö");
System.out.println(input);
//prints
//sjön är varmt idag kanske kommer vi att simma där.
//Det är väldigt roligt att simma där.
//Min mamma säger till mig att där är alltid kallt och att åka tid tar mycket tid.
System.out.println(input.equals(output));//true
或许配合方法会更有效更好。正如我所说,我是初学者,感谢您的帮助。
String fileName = JOptionPane.showInputDialog("Enter the file name");
BufferedReader inputCurrent = new BufferedReader(new FileReader(fileName));
PrintWriter outputCurrent = new PrintWriter(new BufferedWriter(new FileWriter("file.txt")));
String row1;
String replacing = null;
String å,ä,ö;
while((row1 = inputCurrent.readLine())!=null)
{
String aa = "å";
String ae = "ä";
String oe = "ö";
if(row1.contains("aa"))
{
row1 = row1.replaceAll("aa", aa);
}
if(row1.contains("ae")) {
row1 = row1.replaceAll("ae", ae);
}
if(row1.contains("oe"))
{
row1 = row1.replaceAll("oe", oe);
}
outputCurrent.println(row1);
}
outputCurrent.close();
inputCurrent.close();
inputCurrent = new BufferedReader(new FileReader("file.txt"));
outputCurrent = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
while(true)
{
String row2 = inputCurrent.readLine();
if(row2==null)
break;
outputCurrent.println(row2);
}
outputCurrent.close();
inputCurrent.close();
}
}
我正在尝试更改字符; aa 到 å,ae 到 ä,oe 到 ö。
我的输入文本文件是
"今天看起来很暖和 也许我们会游泳达尔。这些天游泳很有趣。 我妈妈告诉我,天总是很冷,开车时间 tar 很多时间。"
输出应该是这样的:
"今天湖水暖和 也许我们会在那里游泳。在那里游泳非常有趣。 我妈妈告诉我那里总是很冷,要留出时间 tar 很多时间。"
我的问题是我做错了什么? 感谢您的帮助和评论。
这是我的代码
public static void main(String[] args) throws IOException {
String fileName = JOptionPane.showInputDialog("Enter the file name");
BufferedReader inputCurrent = new BufferedReader(new FileReader(fileName));
PrintWriter outputCurrent = new PrintWriter(new BufferedWriter(new FileWriter("file.txt")));
String row1;
while((row1 = inputCurrent.readLine())!=null)
{
String aa = "å";
String ae = "ä";
String oe = "ö";
if(row1.equals(aa))
{
String replacing = row1.replaceAll(row1, aa);
outputCurrent.println(replacing);
}
if(row1.equals(ae))
{
String replacing = row1.replaceAll(row1, aa);
outputCurrent.println(replacing);
}
if(row1.equals(oe))
{
String replacing = row1.replaceAll(row1, aa);
outputCurrent.println(replacing);
}
}
outputCurrent.close();
inputCurrent.close();
inputCurrent = new BufferedReader(new FileReader("file.txt"));
outputCurrent = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
while(true)
{
String row2 = inputCurrent.readLine();
if(row2==null)
break;
outputCurrent.println(row2);
}
outputCurrent.close();
inputCurrent.close();
}
}
replaceAll
将模式作为第一个参数。你应该使用 replace
。此外,您正在寻找 equals
而您应该这样做 contains
:
if(row1.contains("aa"))
row1.replace("aa", aa);
但是这样它会将所有 "aa" 出现替换为 å
查看此代码:
String input = "sjoen aer varmt idag kanske kommer vi att simma daer. "
+ "Det aer vaeldigt roligt att simma daer. "
+ "Min mamma säger till mig att daer aer alltid kallt och att aaka tid tar mycket tid.";
String output = "sjön är varmt idag kanske kommer vi att simma där. "
+ "Det är väldigt roligt att simma där. "
+ "Min mamma säger till mig att där är alltid kallt och att åka tid tar mycket tid.";
input = input.replace("aa", "å").replace("ae", "ä").replace("oe", "ö");
System.out.println(input);
//prints
//sjön är varmt idag kanske kommer vi att simma där.
//Det är väldigt roligt att simma där.
//Min mamma säger till mig att där är alltid kallt och att åka tid tar mycket tid.
System.out.println(input.equals(output));//true
或许配合方法会更有效更好。正如我所说,我是初学者,感谢您的帮助。
String fileName = JOptionPane.showInputDialog("Enter the file name");
BufferedReader inputCurrent = new BufferedReader(new FileReader(fileName));
PrintWriter outputCurrent = new PrintWriter(new BufferedWriter(new FileWriter("file.txt")));
String row1;
String replacing = null;
String å,ä,ö;
while((row1 = inputCurrent.readLine())!=null)
{
String aa = "å";
String ae = "ä";
String oe = "ö";
if(row1.contains("aa"))
{
row1 = row1.replaceAll("aa", aa);
}
if(row1.contains("ae")) {
row1 = row1.replaceAll("ae", ae);
}
if(row1.contains("oe"))
{
row1 = row1.replaceAll("oe", oe);
}
outputCurrent.println(row1);
}
outputCurrent.close();
inputCurrent.close();
inputCurrent = new BufferedReader(new FileReader("file.txt"));
outputCurrent = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
while(true)
{
String row2 = inputCurrent.readLine();
if(row2==null)
break;
outputCurrent.println(row2);
}
outputCurrent.close();
inputCurrent.close();
}
}