我运行的代码,但它并没有为String2替换字符串1
我试图梳理扫描仪,但没有奏效。我试图使扫描仪分别关闭而导致理所当然的语法错误。
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");
应改为:
String replaceString=String3.replaceAll(String1, String2);
在第一行,你是要替换的,而不是使用对象的值“字符串1”本身。
为什么使用字符串1,字符串加引号?
替换此:
String replaceString=String3.replaceAll("String1","String2");
有了这个:
String replaceString=String3.replaceAll(String1,String2);
BTW,按照命名规则,变量总是命名开始用小写字母。所以它应该看起来都像:
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);
说明:
有了您的原始行,你用这个词String2的替换字面字String1中。如果没有双引号,要更换存储在String1
变量(好)字存储在String2
变量(坏的)这个词。在一个侧面说明,Java的命名约定指定变量以小写字母 - 大写用于类。
String replaceString = String3.replaceAll(String1,String2);
常这样和打印replacestring,你会得到答案