在将控制台字符串与其他字符串进行比较时,如何处理空白?

时间:2016-04-28 04:55:33

标签: java string console whitespace

在Java编程中;我有一个包含许多字符串的数组(例如String[] compString = "This is a sentence"),当然还包括空格。我希望用户在控制台中键入相同的句子,我希望程序比较两个字符串并告诉用户他们是否正确地重复了句子。意思是,我希望用户输入“这是一个句子”,程序会在这里将userStringcompString进行比较并输出“正确”。但是,由于用户字符串中的空格,它返回“Wrong”,因为它只是将“This”与计算机的字符串“This is a sentence”进行比较。我尝试用它修复它:

if(userString.replace(" ","").equalsIgnoreCase(compString[0].replace(" ",""))){

但这没有帮助,仍然只将“This”与“This is a sentence”进行比较。我是否正确输入了代码以消除所有空白?或者我有不同的方法可以做到这一点吗?

2 个答案:

答案 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(" ", ""))