首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用特定的字符替换2个特定字符

如何用特定的字符替换2个特定字符
EN

Stack Overflow用户
提问于 2016-04-16 21:28:32
回答 2查看 90关注 0票数 0

我试着改变角色,aa改为,ae改为and,oe改为oe。

我的输入文本文件是

"sjoen aer varmt idag kanske kommer vi att simma daer. Det aer vaeldigt roligt att simma daer. Min mamma s ger,直至mig att daer aer alltid kallt och att aaka d tar mycket tid.“

输出应该如下:

“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,直至mig att d r alltid kallt och att tar mycket tid”。

我的问题是我做错了什么?感谢您的帮助和评论。

这是我的密码

代码语言:javascript
复制
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();
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-16 21:32:00

replaceAll将模式作为第一个参数。您应该使用replace。另外,您正在寻找equals,而您应该这样做contains

代码语言:javascript
复制
if(row1.contains("aa"))
    row1.replace("aa", aa);

但这样,它将取代所有的"aa“事件

请参阅以下代码:

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2016-04-16 23:09:11

也许它会更有效和更好的方法。就像我说的,我是乞丐,感谢你的帮助。

代码语言:javascript
复制
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();
}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36669994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档