Java 重复使用替换方法

标签 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);
  }
}

最佳答案

你可以在你的字符串中逐个字符:

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

由于您是初学者,所以(希望如此)可以理解的解释:基本上,您从第一个符号开始遍历给定的字符串。如果它是一个 e,在你的临时解决方案中添加一个 o,如果它是一个 o,添加一个 e,如果它是另一个 char,添加它。最后从您的 StringBuilder 中获取最终的字符串。 在这种情况下,您不会将您的 e 更改为 o 的 Ant ,然后将所有更改为 e。

其他答案的优点是,如果中间符号在起始字符串中,则不会引起问题。

关于Java 重复使用替换方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44707772/

相关文章:

java - 编译保持运行(模式、匹配器任务)

java - 多线程

java - 寻找数字的数字根

java - 将对象从 Activity 传递到 Activity android eclipse

Java - 通过 BlowFish 密码进行 2 字节字符加密

java - 调用 SWIG 生成的 Getter 的段错误

java - Hibernate 和 InterruptedException

java - 为什么 Java 8 中有像 DoubleFunction 这样的原始函数

java - RecursiveAction线程池大小

java - Google Plus Java Cli Starter 导出带有 Maven 依赖项的 jar