在Java编程中;我有一个包含许多字符串的数组(例如String[] compString = "This is a sentence"
),当然还包括空格。我希望用户在控制台中键入相同的句子,我希望程序比较两个字符串并告诉用户他们是否正确地重复了句子。意思是,我希望用户输入“这是一个句子”,程序会在这里将userString
与compString
进行比较并输出“正确”。但是,由于用户字符串中的空格,它返回“Wrong”,因为它只是将“This”与计算机的字符串“This is a sentence”进行比较。我尝试用它修复它:
if(userString.replace(" ","").equalsIgnoreCase(compString[0].replace(" ",""))){
但这没有帮助,仍然只将“This”与“This is a sentence”进行比较。我是否正确输入了代码以消除所有空白?或者我有不同的方法可以做到这一点吗?
答案 0 :(得分:0)
首先,你必须正确地分配你的数组,如下所示:
String[] compString = {"This is a sentence"};
然后尝试比较忽略连续的空白和区分大小写的一种方法
String[] compString = {"This is a sentence"};
String userString = new Scanner(System.in).nextLine();
boolean isSame = userString.trim().replaceAll("\\s+", " ")
.equalsIgnoreCase(compString[0].trim().replaceAll("\\s+", " "));
System.out.println(isSame);
答案 1 :(得分:0)
考虑 compString 是您的字符串而 userString 是用户提供的字符串,以下比较应该有效:
compString.replaceAll(" ", "").equalsIgnoreCase(userString.replaceAll(" ", ""))