Java >> Java tutorial >  >> Tag >> while

Sammenlign strenge, mens du ignorerer hvidt mellemrum i Java

1. Oversigt

I denne korte vejledning vil vi se, hvordan du sammenligner strenge, mens du ignorerer blanktegn i Java .

2. Brug replaceAll() Metode

Antag, at vi har to strenge – den ene indeholder mellemrum og den anden kun indeholder ikke-mellemrumstegn:

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

Vi kan ganske enkelt sammenligne dem, mens vi ignorerer mellemrummene ved hjælp af den indbyggede replaceAll() metoden for strengen klasse:

assertEquals(normalString.replaceAll("\\s+",""), stringWithSpaces.replaceAll("\\s+",""));

Brug af replaceAll() metoden ovenfor fjerner alle mellemrum i vores streng, inklusive ikke-synlige tegn som tab, \n osv.

Ud over \s+ kan vi bruge \s.

3. Brug Apache Commons Lang

Dernæst kan vi bruge StringUtils klasse fra Apache Commons Lang-biblioteket for at opnå det samme mål.

Denne klasse har en metode deleteWhitespace() , som bruges til at slette alle mellemrum i en streng :

assertEquals(StringUtils.deleteWhitespace(normalString), StringUtils.deleteWhitespace(stringWithSpaces));

4. Brug StringUtils Klasse af Spring Framework

Endelig, hvis vores projekt allerede bruger Spring Framework, kan vi bruge StringUtils klasse fra org.springframework.util pakke.

Metoden til at bruge denne gang er trimAllWhitespace() :

assertEquals(StringUtils.trimAllWhitespace(normalString), StringUtils.trimAllWhitespace(stringWithSpaces));

Vi bør huske på, at hvis vi ønsker at sammenligne strenge, hvor mellemrum har en betydning, ligesom folks navne, bør vi ikke bruge metoderne i denne artikel. For eksempel vil følgende to strenge blive betragtet som ens:"JACKIE CHAN" og "JAC KIE CHAN", og det er måske ikke det, vi rent faktisk ønsker.

5. Konklusion

I denne artikel har vi set forskellige måder at sammenligne strenge, mens vi ignorerer blanktegn i Java .

Som altid kan eksempelkoden fra denne artikel findes på GitHub.


Java tag