forskellige måder at fjerne mellemrum fra streng i Java

Strengmanipulation udføres oftest under programmering. Som at fjerne mellemrum i eller omkring strengteksten. Dette også kendt som ‘strip’ ping off mellemrum i strengen. Så indtil nu er vi alle opmærksomme på de forskellige måder at fjerne mellemrum fra streng i java, nemlig trim, replaceAll. Imidlertid, java 11 har lavet nogle nye tilføjelser til disse med metoder som, strimmel, stripLeading , stripTrailing.

størstedelen af tiderne bruger vi bare trimmetoden til at fjerne mellemrum. Vi stopper aldrig og tror, at der kan være en bedre måde, der passer til vores behov? Sikker på, trim () fungerer godt i de fleste tilfælde, men der er mange forskellige metoder i java. Hver har sine egne fordele og ulemper. Hvordan bestemmer vi hvilken metode der passer os bedst?

nå, i denne blog skal vi dække de forskellige metoder i detaljer.

    forskellige måder at fjerne mellemrum fra streng i java

  1. trim (): fjernelse af førende og efterfølgende mellemrum fra strengen
  2. strip(): Fjerner mellemrum i begyndelsen og slutningen af strengen. Strip metode er Unicode charset opmærksom
  3. trim vs strip: forskelle mellem trim og strip metode
  4. stripLeading(): fjerner kun hvide mellemrum fra begyndelsen af strengen
  5. stripTrailing(): fjerner kun hvide mellemrum fra slutningen af strengen
  6. erstat(): erstatter alle måltegn med nyt tegn
  7. replaceAll(): erstatter alle matchede tegn med nyt tegn. Denne metode tager regulært udtryk som input for at identificere målsubstringder skal udskiftes
  8. replaceAll vs replace: forskelle mellem erstat og replaceAll metode
  9. replaceFirst(): erstatter kun første forekomst af målsubstringmed ny udskiftningsstreng

det vigtigste punkt at bemærke er, at i java er et strengobjekt uforanderligt. Det betyder, at vi ikke kan ændre en streng, derfor returnerer alle metoderne ny streng med alle transformationer.

trim() metode i java

trim() er den mest anvendte metode af java-udviklere til fjernelse af førende og efterfølgende mellemrum. For trimmetode betyder rumtegn ethvert tegn, hvis ASCII-værdi er mindre end eller lig med 32 (‘U+0020’).

eksempel på trimmetode til fjernelse af mellemrum:

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 CommandLineRunnerImpl

status=kører

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

strip() metode Java 11

i udgivelsen af Java 11 ny strimmel() metode blev tilføjet for at fjerne førende og efterfølgende mellemrum fra streng.

denne metode blev tilføjet, da der er forskellige rumtegn i henhold til Unicode-standarder med ASCII-værdi mere end 32(‘U+0020’). Tidl.: 8193 (U + 2001).

for at identificere disse mellemrum tegn, ny metode ishvidområde(int) blev tilføjet fra Java 1.5 i Tegnklasse. Denne metode bruger unicode til at identificere mellemrumstegn. Du kan læse mere om unicode space tegn her.

strip-metoden bruger denne karakter.ishvideområde (int) metode til at dække bred vifte af hvide mellemrum tegn og fjerne dem.

eksempel på strip():

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 Kommandolinjerunnerimpl

status=kører

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

forskel mellem trim og strip metode i java

trim () strip()
fra Java 1 fra Java 11
bruger codepoint (ASCII) værdi bruger Unicode værdi
fjerner førende og efterfølgende tegn (mellemrum) fjerner førende og efterfølgende tegn (mellemrum)
fjerner tegn med ASCII-værdi mindre end eller lig med ‘U + 0020 ‘eller’32’ fjerner alle mellemrum tegn i henhold til unicode

lad os se på eksemplet, hvor vi vil bruge hvidt rum tegn højere end 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()+"\""); }}

udgang:

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

i ovenstående eksempel kan vi se, at trim-metoden ikke er i stand til at fjerne mellemrumstegn tilføjet af ‘\u2001’ unicode-tegn.

Bemærk: Hvis du kører på maskinen, kan du muligvis ikke se det tilsvarende output på grund af et begrænset unicode-sæt. Du kan bruge online compilere til at køre programmet. Nogle online compiler links 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

tilføjet i Java 11 fjerner stripLeading () – metoden alle førende mellemrum fra en streng.

svarende til strip metode stripLeading bruger også karakter.ishvideområde (int) for identifyng hvide rum.

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()+"\""); }}

udgang:

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

stripTrailing () metode Java 11

tilføjet i Java 11 fjerner stripTrailing () – metoden alle slutrum fra en streng.

svarende til strip metode stripTrailing bruger også karakter.ishvideområde (int) til identifikation af hvide rum.

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()+"\""); }}

udgang:

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

erstat(Charsekvensmål, Charsekvensudskiftning):

tilføjet fra java 1.5, denne metode bruges til at erstatte hver målsubstring med den angivne udskiftningsstreng.

denne metode erstatter alle matchende målelementer.

Bemærk: endnu en metode erstatte(char oldChar, char nychar) er til stede i java streng klasse. De eneste forskelle er, at denne metode tager enkelt tegn som mål og erstatning. Vi kan ikke bruge denne metode til at fjerne plads, fordi vi ikke kan have tomt tegn som erstatning.

eksempel for at fjerne alle mellemrum 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(" ", "") + "\""); }}

udgang:

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

replaceAll(Strengregeks, Strengudskiftning)

tilføjet i java 1.4, dette er en af de mest kraftfulde metoder til strengmanipulation. Vi kan bruge denne metode til mange formål.

ved hjælp af replaceAll() metode kan vi erstatte hver matchende regulært udtryk substring med den givne udskiftning streng. For eksempel til at fjerne alle rum, fjerne førende rum, fjerne efterfølgende rum og så videre.

vi skal bare oprette korrekt regulært udtryk med korrekt erstatningsparameter. Nogle eksempler på regulære udtryk som nedenfor:

\s + Find alle rum
^\s + Find alle mellemrum ved linjebegyndelsen
\s + $ Find alle mellemrum ved linjeafslutning

eksempel til udskiftning af mellemrum i streng,

Bemærk: i java for at tilføje ‘ / ‘ skal vi bruge escape-tegn, så for “\S+” skal vi bruge ” \ \ 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+$", "") + "\""); }}

Output:

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 ret kraftfuld metode, hvis vi bruger den med korrekt regulært udtryk.

forskel mellem replaceAll og replace metode

udskift alt () erstat()
fra Java 1.4 fra Java 1.5
accepterer regulært udtryk for målidentifikation accepterer streng til målidentifikation
bruges til reparation eller dynamisk streng udskiftning bruges til reparation af streng udskiftning
fjerner tegn med ASCII-værdi mindre end eller lig med ‘U + 0020 ‘eller’32’ fjerner alle mellemrumstegn i henhold til unicode

replaceFirst (Strengregeks, streng udskiftning)

tilføjet i java 1.4, replaceFirst metode erstatter kun den første kamp af givet regulært udtryk med udskiftning streng.

denne metode kan være meget nyttig, hvis du bare skal udskifte kun en første forekomst. For eksempel, hvis vi bare har brug for at fjerne førende mellemrum, kan vi bruge “\\S+” eller “^\\s+”.

vi kan også bruge denne metode til at fjerne efterfølgende mellemrum ved at bruge “\\s+$” regulært udtryk. Da dette udtryk kun vil matche de sidste mellemrum på linje. Så sidste mellemrum betragtes som den første kamp for denne metode.

lad os tage et eksempel til fjernelse af førende og efterfølgende mellemrum 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+$", "") + "\""); }}

Output

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

Fast track reading :

  • der er forskellige måder at fjerne mellemrum fra streng i java
  • trim() er den mest almindelige metode, der bruges til at fjerne mellemrum i streng
  • trim-metoden er ikke unicode-opmærksom og bruger ascii-værdi til at identificere rumtegn
  • fra java 11 tilføjes ny metode ‘strip()’ til fjernelse af mellemrum
  • Metodestrimmel er Unicode opmærksom på, og det skal bruges til at fjerne mellemrum specielt i flersproget sag
  • fra java 11 metoder som stripleading() og striptrailing() er Aded til fjernelse af førende og efterfølgende rum.
  • for mere kontrolleret fjernelse af mellemrum kan vi bruge replaceAll (), replaceall (), replaceFirst()

relaterede emner

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

Previous post Maine Coon vs Ragdoll: Ultimate Race sammenligning-Maine Coon Central
Next post 7 måder at holde dig travlt, når du sidder fast derhjemme