在我的课程中我做错了什么?

时间:2012-12-13 04:46:05

标签: java

我正在编写一个程序,如果有人输入以下两行:

你好,我想订购一个疯狂的

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仍然出现在输出中?

4 个答案:

答案 0 :(得分:1)

使用

sentence1 = sentence1.replaceAll("FZGH", "");
String word = sentence2;

您的第一个(和主要)问题是,您要创建名为String的新word,并将其设置为sentence1.replaceAll("[FZGH]", "")的值。然后,您立即将word的值更改为sentence2,因此替换将丢失。

相反,将sentence1设置为sentence1.replaceAll("FZGH", "");会将sentence1更改为不再包含字符串"FZGH",这就是您的目标。你根本不需要word值,所以如果你想删除它,它就不会受到伤害。

此外,使用[FZGH]将替换字符串中的所有FZGH - 您应该使用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);

    }