Lena Monika Marshall Lena Monika Marshall - 7 months ago 11
Java Question

How to replace 2 specific characters with a specific charecter

I'm trying to change the characters; aa to å, ae to ä and oe to ö.

My input text file is

"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."

The output should be like this:

"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."

My question is what am I doing wrong?
Thank you for help and comment.

this is my code

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();
}
}

Answer

replaceAll takes a pattern as the first argument. You should use replace. Also you're looking for equals whereas you should do contains like this:

if(row1.contains("aa"))
    row1.replace("aa", aa);

But this way it will replace all the "aa" occurrences to å

See this code:

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
Comments