[英]The replaceAll method is not working for me what am I doing wrong?
我運行代碼,但它不會將string1替換為string2
我嘗試梳理掃描儀,但是沒有用。 我試着分別關閉掃描儀,但結果自然導致了語法錯誤。
import java.util.*;
public class Remove_and_Replace {
public static void main(String []args) {
Scanner a = new Scanner(System.in);
System.out.println("Enter your first word:");
String String1 = a.nextLine();
Scanner b = new Scanner(System.in);
System.out.println("Enter your second word:");
String String2 = b.nextLine();
Scanner c = new Scanner(System.in);
System.out.println("Enter your sentence:");
String String3 = c.nextLine();
c.close();
String replaceString=String3.replaceAll("String1","String2");
System.out.println(replaceString);
}
}
預期成績:
Enter your first word:
bad
Enter your second word:
good
Enter your sentence:
I am always bad.
I am always good.
實際結果:
Enter your first word:
bad
Enter your second word:
good
Enter your sentence:
I am always bad.
I am always bad.
刪除雙引號:
String replaceString=String3.replaceAll(String1, String2);
說明 :
有了您的原始行,你用這個詞String2的替換字面字String1中 。 如果沒有雙引號,要更換存儲在字String1
與存儲在字變量(壞) String2
變量(好)。 另外,Java命名約定指定將以小寫字母開頭的變量(大寫字母)用於Classs 。
這行:
String replaceString=String3.replaceAll("String1","String2");
應替換為:
String replaceString=String3.replaceAll(String1, String2);
在第一行中,您嘗試替換值“ String1”本身,而不是使用對象。
為什么在引號中使用String1,String2?
替換為:
String replaceString=String3.replaceAll("String1","String2");
有了這個:
String replaceString=String3.replaceAll(String1,String2);
順便說一句,根據命名約定,變量始終以小寫字母開頭。 所以應該看起來像:
public static void main(String[] args) {
Scanner a = new Scanner(System.in);
System.out.println("Enter your first word:");
String firstWord = a.nextLine();
Scanner b = new Scanner(System.in);
System.out.println("Enter your second word:");
String secondWord = b.nextLine();
Scanner c = new Scanner(System.in);
System.out.println("Enter your sentence:");
String sentence = c.nextLine();
c.close();
String updatedSentence = sentence.replaceAll(firstWord, secondWord);
System.out.println(updatedSentence);
}
有關更多信息,您可以在這里閱讀: https : //www.javatpoint.com/java-naming-conventions
您需要從方法中刪除引號。 發生的事情是它正在尋找單詞“ String1”,如果找到所說的單詞,它將用單詞“ String2”代替。 刪除引號使它可以查找對象的引用,而不是實際的變量名。
這: String replaceString=String3.replaceAll("String1", "String2");
應該變成這樣: String replaceString=String3.replaceAll(String1,String2);
String replaceString = String3.replaceAll(String1,String2);
像這樣長條並打印replacestring,你會得到答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.