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.