a karakterlánc Szóközeinek eltávolításának különböző módjai a Java-ban

a karakterlánc-manipuláció leggyakrabban programozás közben történik. Mint a szóközök eltávolítása a karakterlánc szövegében vagy környékén. Ez más néven ‘strip’ ping le szóközök a húr. Tehát eddig mindannyian tisztában vagyunk azzal, hogy a Java-ban a szóközök eltávolításának különböző módjai vannak, nevezetesen a trim, a replaceAll. A java 11 azonban néhány új kiegészítést tett ezekhez olyan módszerekkel, mint a strip , stripLeading, stripTrailing.

az esetek többségében csak a trim módszert használjuk a szóközök eltávolítására. Soha nem állunk meg és gondolkodunk azon, hogy van-e jobb módja annak, hogy megfeleljünk igényeinknek? Persze, a trim () az esetek többségében jól működik, de a java-ban sokféle módszer létezik. Mindegyiknek megvannak a maga előnyei és hátrányai. Hogyan döntsük el, hogy melyik módszer felel meg nekünk a legjobban?

Nos, ebben a blogban részletesen ismertetjük a különböző módszereket.

    a szóközök eltávolításának különböző módjai a java-ban

  1. trim (): a vezető és a hátsó szóközök eltávolítása a karakterláncból
  2. strip(): Eltávolítja a szóközöket a karakterlánc elején és végén. Strip módszer Unicode karakterkészlet tudatában
  3. trim vs strip: különbségek trim és strip módszer
  4. stripLeading(): eltávolítja a fehér terek csak az elején a string
  5. stripTrailing(): eltávolítja a fehér terek csak a vége a string
  6. replace(): lecseréli az összes cél karakterek új karakter
  7. replaceAll(): az összes illesztett karaktert új karakterre cseréli. Ez a módszer a reguláris kifejezést használja bemenetként a kicserélendő célszubstring azonosításához
  8. replaceAll vs replace: különbségek a replace és a replaceAll metódus között
  9. replaceFirst(): csak a célszubstring első előfordulását cseréli le új replace stringre

a legfontosabb megjegyezni, hogy a java-ban egy string objektum megváltoztathatatlan. Ez azt jelenti, hogy nem módosíthatjuk a karakterláncot, ezért az összes metódus új karakterláncot ad vissza az összes transzformációval.

trim() módszer a java-ban

trim() a java fejlesztők által leggyakrabban használt módszer a vezető és záró szóközök eltávolítására. A trim módszer esetében a szóköz karakter minden olyan karaktert jelent, amelynek ASCII értéke kisebb vagy egyenlő 32-vel (‘U+0020’).

példa a trim módszerre a szóközök eltávolítására:

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

ban ben CommandLineRunnerImpl

status=futás

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

strip() módszer Java 11

a Java kiadásában 11 új strip() módszer került hozzáadásra a vezető és a záró szóközök eltávolításához a karakterláncból.

ezt a módszert adtuk hozzá, mivel az Unicode szabványok szerint különféle szóköz karakterek vannak, amelyek ASCII értéke meghaladja a 32-et(‘U+0020’). Pl. 8193 (U + 2001).

ezen szóköz karakterek azonosításához új iswhitespace(int) módszert adtak hozzá a Java 1.5-ből a Karakterosztályban. Ez a módszer unicode-ot használ a szóköz karakterek azonosítására. Az unicode szóköz karakterekről itt olvashat bővebben.

a strip metódus ezt a karaktert használja.isWhitespace (int) módszer a fehér szóköz karakterek széles körének lefedésére és eltávolítására.

példa a szalagra():

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

a CommandLineRunnerImpl

status = futás

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

különbség a trim és a strip módszer között java-ban

trim () szalag()
Java-ból 1 Java-ból 11
Codepoint(ASCII) értéket használ Unicode értéket használ
vezető és követő karakter eltávolítása (szóköz) vezető és követő karakter eltávolítása (szóköz)
eltávolítja azokat a karaktereket, amelyek ASCII értéke kisebb vagy egyenlő ‘U + 0020 ‘vagy’ 32 ‘ eltávolítja az összes szóköz karaktert az unicode szerint

nézzük meg azt a példát, ahol 32 (‘U+0020’) unicode-nál nagyobb fehér szóköz karaktert fogunk használni.

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

kimenet:

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

a fenti példában láthatjuk, hogy a trim módszer nem tudja eltávolítani a ‘\u2001’ unicode karakter által hozzáadott szóköz karaktert.

Megjegyzés: Ha windows gépen fut, előfordulhat, hogy a korlátozott unicode-készlet miatt nem látja a hasonló kimenetet. Használhatja az online fordítóprogramokat a program futtatásához. Néhány online fordító linkek az alábbiak,
Java-8: https://www.jdoodle.com/online-java-compiler/
Java-11: https://www.tutorialspoint.com/compile_java_online.php

stripLeading () módszer Java 11

hozzáadott Java 11, stripLeading () módszer eltávolítja az összes vezető terek egy String.

hasonló a szalag módszer stripLeading is használ karaktert.isWhitespace (int) az identifyng fehér terek.

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

kimenet:

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

stripTrailing () módszer Java 11

hozzáadott Java 11, stripTrailing () módszer eltávolítja az összes végződő szóköz egy String.

hasonló a szalag módszer stripTrailing is használ karaktert.isWhitespace (int) a fehér terek azonosítására.

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

kimenet:

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

replace(CharSequence target, CharSequence replacement):

hozzáadva a java 1.5-ből, ezt a módszert használják az egyes célszubsztringek helyettesítésére a megadott helyettesítő karakterlánccal.

ez a módszer helyettesíti az összes megfelelő célelemet.

megjegyzés: még egy módszer csere(char oldChar, char newChar) jelen van a java string osztályban. Az egyetlen különbség az, hogy ez a módszer egyetlen karaktert vesz célba és helyettesít. Nem használhatjuk ezt a módszert a hely eltávolítására, mert nem lehet üres karakter helyett.

példa az összes szóköz eltávolítására a karakterláncból

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

kimenet:

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

replaceAll (String regex, String csere)

hozzáadott java 1.4, ez az egyik legerősebb módszer a string manipuláció. Ezt a módszert számos célra használhatjuk.

a replaceAll () metódus segítségével minden egyező reguláris kifejezés alstringjét kicserélhetjük az adott helyettesítő karakterláncra. Például az összes szóköz eltávolításához, a vezető szóközök eltávolításához, a hátsó szóközök eltávolításához stb.

csak létre kell hoznunk a helyes reguláris kifejezést a helyes csere paraméterrel. Néhány reguláris kifejezés példák az alábbiak szerint:

\s + Találd meg az összes helyet
^\s + keresse meg az összes szóközt a sor elején
\s + $ keresse meg az összes szóközt a sor végén

példa a szóközök helyettesítésére a karakterláncban,

megjegyzés: a java-ban a ‘/’ hozzáadásához escape karaktert kell használnunk, így a “\s+” – hoz ” \ \ 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+$", "") + "\""); }}

kimenet:

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

amint láthatjuk, hogy a replaceAll() elég hatékony módszer, ha megfelelő reguláris kifejezéssel használjuk.

különbség a replaceAll és a replace módszer között

replaceAll() replace()
Java 1.4 – től Java 1-től.5
reguláris kifejezés elfogadása a célazonosításhoz karakterlánc elfogadása a célazonosításhoz
használt fix vagy dinamikus karakterlánc csere használt fix karakterlánc csere
az ‘U+0020′ vagy ’32’ az unicode szerinti Összes szóköz karaktert eltávolítja

replaceFirst (String regex, String csere)

hozzáadott java 1.4, replaceFirst módszer helyettesíti csak az első mérkőzés adott reguláris kifejezés csere húr.

ez a módszer nagyon hasznos lehet, ha csak egy első előfordulást kell kicserélnie. Például, ha csak el kell távolítanunk a vezető szóközöket, használhatjuk a “\\s+” vagy a “^\\s+”szót.

ezzel a módszerrel eltávolíthatjuk a záró szóközöket a “\\s+$” reguláris kifejezés használatával. Mivel ez a kifejezés csak a sor utolsó szóközéhez illeszkedik. Tehát az utolsó szóközöket tekintik ennek a módszernek az első mérkőzésének.

Vegyünk egy példát a vezető és a záró szóközök eltávolítására a karakterláncból

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

kimenet

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

gyorsított olvasás :

  • különböző módon lehet eltávolítani a szóközöket a karakterláncból a java-ban
  • a trim() a leggyakoribb módszer a szóközök eltávolítására a karakterláncban
  • a trim módszer nem ismeri az unicode-ot, és ascii értéket használ a szóköz karakterek azonosítására
  • a java-ból 11 új módszer a ‘strip()’ kerül hozzáadásra a szóközök eltávolításához
  • a metódus Unicode aware és ezt kell használni eltávolítására szóközök kifejezetten többnyelvű esetben
  • java 11 módszerek, mint stripleading() és striptrailing() aded eltávolítására vezető és záró szóközök.
  • a szóközök kontrolláltabb eltávolításához használhatjuk a replaceAll(), replace(), replaceFirst függvényt()

kapcsolódó témák

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

Previous post Maine Coon vs Ragdoll: végső fajta összehasonlítás-Maine Coon Central
Next post 7 módja annak, hogy elfoglalja magát, amikor otthon ragadt