[英]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]
所有F
, Z
, G
和H
- 您應該使用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.