Java如何忽略空格時比較字符串

1. 概述

在這個簡短的教程中,我們將看到如何在忽略 Java 中的空格的情況下比較字符串

2. 使用replaceAll()方法

假設我們有兩個字符串——一個包含空格,另一個只包含非空格字符:

String normalString = "ABCDEF";
 String stringWithSpaces = " AB CD EF ";

StringreplaceAll()方法在忽略空格的情況下簡單地比較它們:

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));