我正在编写一个程序,如果有人输入以下两行:
你好,我想订购一个疯狂的
KID'S MEAL
程序将输出如下:
你好,我想点一个小孩的食物
换句话说,用户输入句子的“FZGH”将替换为第二行的单词,如您所见:“FZGH”被“KID'S MEAL”取代。有点得到我的意思?如果没有,我可以详细说明,但这是我能解释得最好的。
我真的很接近解决这个问题!我目前的输出是:你好,我想点一个疯狂的小伙子用餐
我的程序没有用“KID'S MEAL”替换“FZGH”,我不知道为什么会这样。我认为通过使用.replaceAll(),它会将“FZGH”替换为“KID'S MEAL”,但这并没有真正发生。到目前为止,这是我的计划:
public static void main(String[] args) {
sentences();
}
public static void sentences() {
Scanner console = new Scanner(System.in);
String sentence1 = console.nextLine();
String sentence2 = console.nextLine();
//System.out.println(sentence1 + "\n" + sentence2);
String word = sentence1.replaceAll("[FZGH]", "");
word = sentence2;
System.out.print(sentence1 + word);
}
我在哪里陷入困境,导致FZGH仍然出现在输出中?
答案 0 :(得分:1)
使用
sentence1 = sentence1.replaceAll("FZGH", "");
String word = sentence2;
您的第一个(和主要)问题是,您要创建名为String
的新word
,并将其设置为sentence1.replaceAll("[FZGH]", "")
的值。然后,您立即将word
的值更改为sentence2
,因此替换将丢失。
相反,将sentence1
设置为sentence1.replaceAll("FZGH", "");
会将sentence1
更改为不再包含字符串"FZGH"
,这就是您的目标。你根本不需要word
值,所以如果你想删除它,它就不会受到伤害。
此外,使用[FZGH]
将替换字符串中的所有F
,Z
,G
和H
- 您应该使用FZGH
代替,因为这样只会删除一行中所有四个字母的实例。
答案 1 :(得分:1)
我认为你有几个错误。也许以下是接近......
public static void main(String[] args) {
sentences();
}
public static void sentences() {
Scanner console = new Scanner(System.in);
String sentence1 = console.nextLine();
String sentence2 = console.nextLine();
String sentence3 = sentence1+sentence2;
String final = sentence3.replaceAll("FZGH", "");
System.out.print(final);
}
答案 2 :(得分:0)
您正在重新分配字符串“word”
取代行:
String word = sentence1.replaceAll("[FZGH]", "");
word = sentence2;
System.out.print(sentence1 + word);
使用以下行
sentence1 = sentence1.replaceAll("[FZGH]", "");
System.out.print(sentence1 + sentence2);
答案 3 :(得分:0)
实际上,replace方法返回一个应该再次赋值给sentence1的字符串。你可以运行这段代码,它的工作正常。 public static void main(String [] args){ 句子(); }
public static void sentences() {
Scanner console = new Scanner(System.in);
String sentence1 = "HELLO, I’D LIKE TO ORDER A FZGH";
String sentence2 = "KID’S MEAL";
//System.out.println(sentence1 + "\n" + sentence2);
sentence1 = sentence1.replace("FZGH", "");
String word = sentence2;
System.out.print(sentence1 + word);
}