簡體   English   中英

replaceAll方法對我不起作用我在做什么錯?

[英]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.

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