Java >> Java tutorial >  >> Tag >> boolean

Konvertering af en Java-streng til en Boolean

1. Oversigt

I dette selvstudie vil vi udforske de forskellige måder, vi kan bruge Javas booleske klasse til konverter en streng til en boolesk .

2. Boolean.parseBoolean()

Boolean.parseBoolean() giver os mulighed for at sende en streng og modtage en primitiv boolean .

Lad os først skrive en test for at se, hvordan parseBoolean() konverterer en streng med værdien sand:

assertThat(Boolean.parseBoolean("true")).isTrue();

Selvfølgelig består testen.

Faktisk er semantikken i parseBoolean() er så tydelige, at IntelliJ IDEA advarer os om, at vi sender strengen bogstaveligt “sand” er overflødig.

Med andre ord, denne metode er fremragende til at dreje en streng til en boolesk .

3. Boolean.valueOf()

Boolean.valueOf() lader os også passere i en streng , men denne metode returnerer en boolesk klasseforekomst i stedet for en primitiv boolesk .

Vi kan se, at denne metode også lykkes med at konvertere vores String:

assertThat(Boolean.valueOf("true")).isTrue();

Denne metode bruger faktisk parseBoolean() at gøre sin streng konvertering i baggrunden, og bruger blot resultatet til at returnere en statisk defineret Boolean eksempel.

Derfor bør denne metode kun bruges, hvis den returnerede Boolean instans er nødvendig. Hvis der kun er behov for et primitivt resultat, er det mere effektivt at holde fast ved at bruge parseBoolean() direkte.

4. Boolean.getBoolean()

Boolean.getBoolean() er en tredje metode, der accepterer en streng og returnerer en boolsk .

Uden at se på dokumentationen eller implementeringen af ​​denne metode kan man med rimelighed antage, at denne metode også er til at konvertere dens streng argument til en boolesk:

assertThat(Boolean.getBoolean("true")).isTrue(); // this test fails!

Grunden til, at denne test mislykkes, er, at strengen argument formodes at repræsentere navnet på en boolean systemegenskab.

Ved at definere systemegenskaben:

System.setProperty("CODING_IS_FUN", "true");
assertThat(Boolean.getBoolean("CODING_IS_FUN")).isTrue();

Endelig består testen. Undersøgelse af implementeringen af ​​denne metode afslører, at den også bruger parseBoolean() metode til at lave sin streng konvertering.

Bemærk, at getBoolean() er bogstaveligt talt en genvej til parseBoolean(System.getProperty(“true”)), hvilket betyder, at vi ikke skal vildledes af navnet.

Derfor den eneste måde Boolean.getBoolean(“true”); vil nogensinde vende tilbage true er, hvis der eksisterer en systemegenskab kaldet “true” og dens værdi analyseres til true .

4. Konklusion

I denne korte vejledning har vi set de vigtigste forskelle mellem Boolean.parseBoolean() , Boolean.valueOf() , og Boolean.getBoolean() .

Mens parseBoolean() og valueOf() begge konverterer en streng til en boolesk , er det vigtigt at huske, at Boolean.getBoolean() ikke.

Kildekoden med alle eksemplerne i denne tutorial kan findes på Github.


Java tag