如何用特定字符替换 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();
}

}