Sådan fjernes den sidste karakter af en streng?

1. Oversigt

I denne hurtige artikel vil vi kontrollere og diskutere forskellige teknikker til at fjerne den sidste karakter af en Snor.

2. Brug String.substring ()

Den nemmeste måde er at bruge den indbyggede understreng () metode af Snor klasse.

For at fjerne det sidste tegn i en given Snor, vi skal bruge to parametre: 0 som startindeks og indeks for den næstsidste karakter. Vi kan opnå det ved at ringe Snor'S længde () metode og fratrækning 1 fra resultatet.

Imidlertid, denne metode er ikke nul-sikker og hvis vi bruger en tom streng, vil dette mislykkes.

For at overvinde problemer med tomme og tomme strenge kan vi pakke metoden i en hjælperklasse:

offentlig statisk streng removeLastChar (streng s) 

Vi kan omlægge koden og bruge Java 8:

offentlig statisk streng removeLastCharOptional (String s) {return Optional.ofNullable (s). filter (str -> str.length ()! = 0) .map (str -> str.substring (0, str.length () - 1 eller Else (s); }

3. Brug StringUtils.substring ()

I stedet for at genopfinde hjulet kan vi bruge det StringUtils klasse fra Apache Commons Lang3 bibliotek, der tilbyder nyttige Snor operationer. En af dem er en nul-sikker understreng () metode, der håndterer undtagelser.

At medtage StringUtils vi er nødt til at opdatere vores pom.xml fil:

 org.apache.commons commons-lang3 3.0 

StringUtils.substring () kræver tre parametre: en given Snor, et indeks over det første tegn (i vores tilfælde vil det altid være 0) og et indeks for det næstsidste tegn. Igen kan vi simpelthen bruge længde () metode og fratræk 1:

Streng TEST_STRING = "abcdef"; StringUtils.substring (TEST_STRING, 0, TEST_STRING.length () - 1);

Alligevel er denne operation ikke nul-sikker igen. Det fungerer med tomt Strenge fint dog.

4. Brug StringUtils.chop ()

StringUtils klasse giver hakke() metode, der fungerer godt med alle kantscenarier: tomme og nulstrenge.

Det er meget let at bruge og kræver kun en parameter: Snor. Dens eneste formål er at fjerne det sidste tegn. Intet mere, intet mindre:

StringUtils.chop (TEST_STRING);

5. Brug af regulært udtryk

Vi kan også fjerne det sidste tegn (eller et hvilket som helst antal tegn) fra en Snor ved at gøre god brug af regulære udtryk.

For eksempel kan vi bruge erstatteAlle () metode til Snor klassen selv - der tager to parametre: regulært udtryk og erstatning Snor:

TEST_STRING.replaceAll (". $", "");

Bemærk, at fordi vi kalder en metode til Snor - operationen er selvfølgelig ikke nul-sikker.

Også, erstatteAlle () og regex-ekspression kan være kompleks ved første øjekast. Du kan læse mere om regex her, men for at gøre logikken lidt mere brugervenlig kan vi pakke den ind i en hjælperklasse:

offentlig statisk streng removeLastCharRegex (streng s) {retur (s == null)? null: s.replaceAll (". $", ""); }

Bemærk, at hvis en Snor slutter med en ny linje, så ovenstående metode mislykkes som “.” i regex matcher ethvert tegn undtagen linjeterminatorer.

Lad os endelig skrive om implementeringen med Java 8:

offentlig statisk streng removeLastCharRegexOptional (String s) {return Optional.ofNullable (s) .map (str -> str.replaceAll (". $", "")) .orElse (s); }

6. Konklusion

I denne korte artikel har vi diskuteret forskellige måder at fjerne kun den sidste karakter af en Snor - nogle manualer, nogle klar ud af kassen.

Og hvis vi har brug for mere fleksibilitet, og vi skal fjerne flere tegn, kan vi den mere avancerede løsning med regulære udtryk.

Som altid kan koden, der bruges i hele artiklen, findes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found