我必须用 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/