1. 概述
在这个简短的教程中,我们将看到如何在忽略 Java 中的空格的情况下比较字符串。
2. 使用replaceAll()
方法
假设我们有两个字符串——一个包含空格,另一个只包含非空格字符:
String normalString = "ABCDEF";
String stringWithSpaces = " AB CD EF ";
String
类replaceAll()方法在忽略空格的情况下简单地比较它们:
assertEquals(normalString.replaceAll("\\s+",""), stringWithSpaces.replaceAll("\\s+",""));
使用上面的replaceAll()
方法将删除字符串中的所有空格,包括不可见的字符,如制表符、\n 等。
除了\s+,我们还可以使用\s。
3.使用Spring框架StringUtils
最后,如果我们的项目已经在使用 Spring Framework,我们可以使用org.springframework.util包中StringUtils类。
这次使用的方法是trimAllWhitespace() :
assertEquals(StringUtils.trimAllWhitespace(normalString), StringUtils.trimAllWhitespace(stringWithSpaces));
我们应该记住,如果我们想比较空格有含义的字符串,比如人名,我们不应该使用本文中的方法。例如,以下两个字符串将被视为相等:“JACKIE CHAN”和“JAC KIE CHAN”,这可能不是我们真正想要的。
4. 使用 Apache Commons Lang
接下來,我们可以使用StringUtils类来实现相同的目标。
该类有一个方法deleteWhitespace() ,用于删除String所有空格:
assertEquals(StringUtils.deleteWhitespace(normalString), StringUtils.deleteWhitespace(stringWithSpaces));
0 评论