Java重复使用Replace方法

vis*_*h60 1 java

我必须用Java编写一个程序,通过切换字母'e'和'o'来替换'Hello,World'中的字母,这样程序的输出就是"Holle,Werld".我尝试使用以下代码执行此操作,但已经意识到所有o都是e,而e将保持为e.我知道e正在覆盖o,但我只是不知道如何修复.我现在的输出是'Helle Werld'.再次,我想要"Holle,Werld".谢谢!

import java.util.Scanner;

public class E2U7
{
  public static void main(String[] args)
  {
    String river = "Hello, World";
    river = river.replace("e","o");
    river = river.replace("o","e");
    System.out.print(river);
  }
}
Run Code Online (Sandbox Code Playgroud)

Tho*_*öhm 5

您可以在字符串中按字符串char:

public class JavaTestiMain {
public static void main(String[] args)
  {
    String river = "Hello, World";
    StringBuilder sb=new StringBuilder();
    for (char c : river.toCharArray()){
        if(c == 'e'){
            sb.append('o');
        }
        else if (c=='o'){
            sb.append('e');
        }
        else{
            sb.append(c);
        }
    }
    System.out.println(sb.toString());
  }
}
Run Code Online (Sandbox Code Playgroud)

因为你是一个入门者,一个(希望)可理解的解释:基本上,你从第一个符号开始循环遍历给定的String.如果是e,请在临时解决方案中添加o,如果是o,则添加e,如果是另一个char,则添加它.最后从StringBuilder获取最终的String.在这种情况下,你不要将你的e改为o蚂蚁然后将全部改为e's.

其他答案的优点是,如果中间符号位于起始字符串中,则不会导致问题.