簡體   English   中英

在我的課程中我做錯了什么?

[英]What did I do wrong in my program?

我正在編寫一個程序,如果有人輸入以下兩行:

你好,我想訂購一個FZGH

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仍然出現在輸出中?

采用

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

您的第一個(和主要)問題是您正在創建一個名為word的新String ,您將設置為sentence1.replaceAll("[FZGH]", "") 然后,您立即將word的值更改為sentence2 ,因此替換將丟失。

相反,將sentence1設置為sentence1.replaceAll("FZGH", ""); 將改變sentence1不再包含字符串"FZGH" ,這是你要的東西。 你根本不需要一個word值,所以如果你想刪除它,它就不會受到傷害。

此外,使用[FZGH]將替換[FZGH]所有FZGH - 您應該使用FZGH ,因為這樣只會刪除一行中所有四個字母的實例。

我想你有幾個錯誤。 也許以下是接近...

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

你正在重新分配字符串“word”

代替線條:

String word = sentence1.replaceAll("[FZGH]", "");
word = sentence2;
System.out.print(sentence1 + word);

使用以下行

sentence1 = sentence1.replaceAll("[FZGH]", "");
System.out.print(sentence1 + sentence2);

實際上,replace方法返回一個字符串,該字符串應該再次賦值給sentence1。 你可以運行這段代碼,它的工作正常。 public static void main(String [] args){sentence(); }

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

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM