Ulike måter å fjerne Mellomrom Fra Streng I Java

Strengmanipulering gjøres oftest under programmering. Som å fjerne mellomrom i eller rundt strengteksten. Dette også kjent som ‘strip’ping av mellomrom i strengen. Så frem til nå er vi alle klar over de forskjellige måtene å fjerne mellomrom fra streng i java, nemlig trim, replaceAll. Java 11 har imidlertid gjort noen nye tillegg til disse med metoder som, stripe , stripLeading, stripTrailing.

Fleste ganger, vi bare bruke trim metoden for å fjerne mellomrom. Vi stopper aldri og tror er det kan være en bedre måte å dekke våre behov? Visst, trim () fungerer bra for de fleste tilfeller, men det er mange forskjellige metoder i java. Hver har sine egne fordeler og ulemper. Hvordan bestemmer vi hvilken metode som passer oss best?

vel, i denne bloggen skal vi dekke de ulike metodene i detalj.

    Ulike måter å fjerne mellomrom fra streng i java

  1. trim (): Fjerne ledende og etterfølgende mellomrom fra strengen
  2. strip (): Fjerner mellomrom på begynnelsen og slutten av strengen. Strip metoden Er Unicode charset klar
  3. trim vs strip: Forskjeller mellom trim og strip metoden
  4. stripLeading(): Fjerner mellomrom bare fra begynnelsen av strengen
  5. stripTrailing(): Fjerner mellomrom bare fra slutten av strengen
  6. erstatt(): Erstatter alle mål tegn med nytt tegn
  7. replaceAll(): erstatter Alle Matchede Tegn med nytt tegn. Denne metoden tar regulære uttrykk som input for å identifisere målet delstreng som må erstattes
  8. replaceAll vs replace: Forskjeller mellom erstatte og replaceAll metode
  9. replaceFirst(): Erstatter bare første forekomsten av målet delstreng med ny erstatning streng

Viktigste punktet å merke seg er at i java en streng objekt er uforanderlig. Det betyr at vi ikke kan endre en streng, derfor returnerer alle metodene ny streng med alle transformasjonene.

trim() metode i java

trim () er den mest brukte metoden av java-utviklere for å fjerne ledende og etterfølgende mellomrom. For trimmetode betyr mellomrom et tegn hvis ASCII-verdi er mindre enn eller lik 32 (‘U + 0020’).

eksempel på trimmetode for å fjerne mellomrom:

public class StringTrimTest { public static void main(String args) { String string = " String with space "; System.out.println("Before trim: \"" + string +"\""); System.out.println("After trim: \"" + string.trim() +"\""); }}

i Commandlinerunneripl

status=kjører

Before trim: " String with space "After trim: "String with space"

strip() metode Java 11

i utgivelsen Av Java 11 ble ny stripe() metode lagt til for å fjerne ledende og etterfølgende mellomrom Fra Streng.

denne metoden ble lagt til da det er forskjellige mellomrom i Henhold Til Unicode-standarder som har ASCII-verdi mer enn 32 (‘U+0020’). Eks: 8193 (U+2001).

for å identifisere disse mellomromstegnene ble ny metode isWhitespace(int) lagt til Fra Java 1.5 I Tegnklasse. Denne metoden bruker unicode til å identifisere mellomrom. Du kan lese mer om unicode space tegn her.

strip-metoden bruker Dette Tegnet.isWhitespace (int) metode for å dekke bredt spekter av hvite mellomrom og fjerne dem.

Eksempel på stripe():

public class StringStripTest { public static void main(String args) { String string = " String with space "; System.out.println("Before strip: \"" + string+"\""); System.out.println("After strip: \"" + string.strip()+"\""); }}

I Commandlinerunneripl

status = kjører

Before strip: " String with space "After strip: "String with space"

Forskjell mellom trim-og stripemetode i java

trim () stripe()
Fra Java 1 Fra Java 11
Bruker codepoint (ASCII) verdi Bruker Unicode-verdi
Fjerner ledende og etterfølgende tegn (mellomrom) Fjerner ledende og etterfølgende tegn (mellomrom)
Fjerner tegn som har ASCII-verdi mindre enn Eller lik ‘U + 0020 ‘eller’ 32 ‘ Fjerner alle mellomrom i henhold til unicode

La oss se på eksemplet der vi skal bruke hvitt mellomrom som er høyere enn 32 (‘U+0020’) unicode.

public class StringTrimVsStripTest { public static void main(String args) { String string = '\u2001'+"String with space"+ '\u2001'; System.out.println("Before: \"" + string+"\""); System.out.println("After trim: \"" + string.trim()+"\""); System.out.println("After strip: \"" + string.strip()+"\""); }}

Utgang:

Before: " String with space "After trim: " String with space "After strip: "String with space"

i eksemplet ovenfor kan vi se at trim-metoden ikke kan fjerne mellomrom lagt til av’ \u2001 ‘ unicode-tegn.

Merk: hvis du kjører på windows-maskin, kan det hende du ikke kan se lignende utdata på grunn av begrenset unicode-sett. Du kan bruke online kompilatorer til å kjøre programmet. Noen online kompilator lenker er som nedenfor,
Java-8: https://www.jdoodle.com/online-java-compiler/
Java-11: https://www.tutorialspoint.com/compile_java_online.php

stripLeading () metode Java 11

Lagt Til I Java 11, stripLeading() metode fjerner alle ledende mellomrom fra En Streng.

i Likhet med strip metoden stripLeading bruker Også Tegn.isWhitespace (int) for identifyng hvite mellomrom.

public class StringStripLeadingTest { public static void main(String args) { String string = " String with space "; System.out.println("Before: \"" + string+"\""); System.out.println("After : \"" + string.stripLeading()+"\""); }}

Utgang:

Before: " String with space "After : "String with space "

stripTrailing () Metode Java 11

Lagt I Java 11, stripTrailing() metoden fjerner alle slutt mellomrom fra En Streng.

i Likhet med strip metode stripTrailing bruker Også Tegn.isWhitespace (int) for å identifisere hvite mellomrom.

public class StringStripTrailingTest { public static void main(String args) { String string = " String with space "; System.out.println("Before: \"" + string+"\""); System.out.println("After : \"" + string.stripTrailing()+"\""); }}

Utgang:

Before:" String with space "After :" String with space"

erstatt(CharSequence target, CharSequence replacement):

Lagt til fra java 1.5, denne metoden brukes til å erstatte hvert målstreng med den angitte erstatningsstrengen.

denne metoden erstatter alle samsvarende målelementer.

Merk: En mer metode erstatte(char oldChar, char newChar) er til stede i java streng klasse. De eneste forskjellene er at denne metoden tar enkelt tegn som mål og erstatning. Vi kan ikke bruke denne metoden til å fjerne plass, fordi vi ikke kan ha tomt tegn som erstatning.

Eksempel for å fjerne alle mellomrom fra streng

public class StringReplaceTest { public static void main(String args) { String string = " String with space "; System.out.println("Before : \"" + string + "\""); System.out.println("Replace: \"" + string.replace(" ", "") + "\""); }}

Utdata:

Before : " String with space "Replace : "Stringwithspace" 

replaceAll (String regex, String replacing)

Lagt til i java 1.4, dette Er en av de kraftigste metoden for strengmanipulering. Vi kan bruke denne metoden til mange formål.

ved hjelp av replaceAll () – metoden kan vi erstatte hver matchende regulære uttrykksstreng med den oppgitte erstatningsstrengen. For eksempel for å fjerne alle mellomrom, fjerne ledende mellomrom, fjerne etterfølgende mellomrom og så videre.

Vi trenger bare å lage riktig regulært uttrykk med riktig erstatningsparameter. Noen vanlige uttrykk eksempler som nedenfor:

\s + finn all plass
^\s + Finn alle lokaler på linjebegynnelsen
\s+ $ Finn Alle spaces på linjeavslutning

eksempel for å erstatte mellomrom i streng,

Merk: i java for å legge til ‘/’ må vi bruke escape-tegn, så for «\s+» må vi bruke «\\s+»

public class StringReplaceAllTest { public static void main(String args) { String string = " String with space "; System.out.println("Before replaceAll : \"" + string+"\""); System.out.println("Replace all space : \"" + string.replaceAll(" ", "") + "\""); System.out.println("Replace all regex : \"" + string.replaceAll("\s+", "") + "\""); System.out.println("Replace Leading : \"" + string.replaceAll("^\s+", "") + "\""); System.out.println("Replace trailing : \"" + string.replaceAll("\s+$", "") + "\""); }}

Utgang:

Before replaceAll : " String with space "Replace all space : "Stringwithspace"Replace all regex : "Stringwithspace"Replace Leading : "String with space "Replace trailing : " String with space"

Som vi kan se at replaceAll () er ganske kraftig metode hvis vi bruker den med riktig regulært uttrykk.

Forskjell mellom replaceAll og replace metode

replaceAll () erstatt()
Fra Java 1.4 Fra Java 1.5
Godtar regulært uttrykk for målidentifikasjon Godtar streng for målidentifikasjon
brukes for fix eller dynamisk string replacement Brukes for fix string replacement
Fjerner tegn som har ASCII-verdi mindre enn Eller lik ‘U + 0020 ‘eller’ 32 ‘ Fjerner alle mellomrom i henhold til unicode

replaceFirst (String regex, String replacement)

Lagt til i java 1.4, replaceFirst-metoden erstatter bare den første kampen for gitt regulært uttrykk med erstatningsstreng.

Denne metoden kan være svært nyttig hvis du bare trenger å erstatte bare en første forekomst. For eksempel hvis vi bare trenger å fjerne ledende mellomrom, kan vi bruke «\\s+ «eller» ^\\s+».

vi kan også bruke denne metoden til å fjerne etterfølgende mellomrom ved å bruke «\\s+$» regulært uttrykk. Da dette uttrykket bare samsvarer med de siste mellomrom i linjen. Så siste mellomrom regnes som den første kampen for denne metoden.

la oss ta et eksempel for å fjerne ledende og etterfølgende mellomrom fra streng

public class StringReplaceFistTest { public static void main(String args) { String string = " String with space "; System.out.println("Before : \"" + string+"\""); System.out.println("Replace : \"" + string.replaceFirst("space", "update") + "\""); System.out.println("Leading : \"" + string.replaceFirst("\s+", "") + "\""); System.out.println("Trailing : \"" + string.replaceFirst("\s+$", "") + "\""); }}

Utgang

Before : " String with space "Replace : " String with update "Leading : "String with space "Trailing : " String with space"

Fast track-lesing :

  • det er forskjellige måter å fjerne mellomrom fra streng i java
  • trim() er den vanligste metoden som brukes for å fjerne mellomrom i streng
  • trim-metoden er ikke unicode klar og bruker ascii-verdi for å identifisere mellomrom
  • fra java 11 ny metode ‘strip()’ er lagt til for å fjerne mellomrom
  • Metode stripe spesielt i flerspråklig tilfelle
  • fra java 11 metoder som stripleading() og striptrailing() er aded for å fjerne ledende og etterfølgende mellomrom.
  • for mer kontrollert fjerning av mellomrom kan vi bruke replaceAll (), replace (), replaceFirst()

Relaterte emner

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.

Previous post Maine Coon vs Ragdoll: Ultimate Breed Comparison-Maine Coon Central
Next post 7 Måter Å Holde Deg Opptatt Når Du Sitter Fast Hjemme