różne sposoby usuwania spacji Z ciągu znaków w Javie

manipulacja łańcuchem jest wykonywana najczęściej podczas programowania. Jak usuwanie spacji w tekście ciągów znaków lub wokół niego. To również znany jako „strip” off spacje w ciągu. Tak więc do tej pory wszyscy jesteśmy świadomi różnych sposobów usuwania spacji z ciągu znaków w Javie, a mianowicie trim, replaceAll. Jednak java 11 wprowadziła do nich kilka nowych dodatków za pomocą takich metod, jak strip , stripteading, stripTrailing.

w większości przypadków używamy metody trim do usuwania spacji. Nigdy nie zatrzymujemy się i nie myślimy, czy istnieje lepszy sposób na zaspokojenie naszych potrzeb? Oczywiście, trim() działa dobrze w większości przypadków, ale w Javie jest wiele różnych metod. Każdy ma swoje zalety i wady. Jak zdecydować, która metoda najbardziej nam odpowiada?

Cóż, na tym blogu omówimy szczegółowo różne metody.

    różne sposoby usuwania spacji z ciągu znaków w Javie

  1. trim (): usuwanie spacji początkowych i końcowych z ciągu znaków
  2. strip(): Usuwa spacje na początku i końcu łańcucha. Metoda Strip jest świadoma zestawu znaków Unicode
  3. trim vs strip: różnice między metodą trim a strip
  4. stripLeading(): usuwa białe spacje tylko na początku łańcucha
  5. stripTrailing(): usuwa białe spacje tylko na końcu łańcucha
  6. replace(): zastępuje wszystkie znaki docelowe nowym znakiem
  7. replaceAll(): zastępuje wszystkie dopasowane znaki nowym znakiem. Metoda ta przyjmuje Wyrażenie regularne jako dane wejściowe do identyfikacji docelowego podłańcucha, który musi zostać zastąpiony
  8. replaceAll vs replace: różnice między metodą replace i replaceAll
  9. replaceFirst(): zastępuje tylko pierwsze wystąpienie docelowego podłańcucha nowym zastępczym łańcuchem

najważniejszym punktem jest to, że w Javie obiekt string jest niezmienny. Oznacza to, że nie możemy modyfikować łańcucha, dlatego wszystkie metody zwracają nowy łańcuch z wszystkimi transformacjami.

metoda trim() w języku java

trim() jest najczęściej używaną metodą przez programistów java do usuwania początkowych i końcowych spacji. Dla metody trim znak przestrzeni oznacza dowolny znak, którego wartość ASCII jest mniejsza lub równa 32 („U+0020”).

przykład metody trim do usuwania spacji:

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

w CommandLineRunnerImpl

status=running

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

strip() metoda Java 11

w wydaniu Java 11 dodano nową metodę strip() w celu usunięcia spacji początkowych i końcowych z ciągu znaków.

ta metoda została dodana, ponieważ istnieją różne znaki spacji według standardów Unicode o wartości ASCII większej niż 32(’U+0020′). Ex: 8193 (U+2001).

aby zidentyfikować te znaki spacji, dodano nową metodę isWhitespace (int) z Java 1.5 W Klasie Character. Ta metoda używa unicode do identyfikacji znaków spacji. Możesz przeczytać więcej o znakach spacji unicode tutaj.

metoda strip używa tego znaku.metoda isWhitespace(int) do pokrywania szerokiego zakresu znaków spacji i usuwania ich.

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

w CommandLineRunnerImpl

status=uruchamianie

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

różnica między metodą trim i strip w Javie

trim () strip()
z Javy 1 z Javy 11
używa wartości codepoint (ASCII) używa wartości Unicode
usuwa znak początkowy i końcowy(spacja) usuwa znak początkowy i końcowy (spacja)
usuwa znaki o wartości ASCII mniejszej lub równej „U+0020″ lub ” 32 ” usuwa wszystkie znaki spacji zgodnie z unicode

spójrzmy na przykład, w którym użyjemy znaku spacji wyższej niż 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()+"\""); }}

:

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

w powyższym przykładzie widzimy, że metoda trim nie jest w stanie usunąć znaku spacji dodanego przez znak unicode '\u2001′.

Uwaga: Jeśli używasz komputera z systemem windows, możesz nie być w stanie zobaczyć podobnego wyjścia z powodu ograniczonego zestawu unicode. Możesz użyć kompilatorów online, aby uruchomić program. Niektóre linki kompilatora online są jak poniżej,
Java-8: https://www.jdoodle.com/online-java-compiler/
Java-11: https://www.tutorialspoint.com/compile_java_online.php

metoda stripLeading () Java 11

dodana w Java 11, metoda stripLeading() usuwa wszystkie początkowe spacje z ciągu znaków.

podobnie jak metoda strip stripLeading również używa znaków.isWhitespace (int) dla identifyng white spaces.

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

:

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

metoda stripTrailing () Java 11

dodana w Java 11, metoda stripTrailing() usuwa wszystkie spacje kończące Z ciągu znaków.

podobnie jak metoda strip, stripTrailing również wykorzystuje charakter.isWhitespace (int) do identyfikacji białych spacji.

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

:

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

replace(charsequence target, charsequence replacement):

dodana w Javie 1.5 metoda ta służy do zastąpienia każdego docelowego podłańcucha podanym łańcuchem zastępczym.

ta metoda zastępuje wszystkie pasujące elementy docelowe.

Uwaga: jeszcze jedna metoda replace (char oldChar, char newChar) jest obecna w java string class. Jedyną różnicą jest to, że ta metoda przyjmuje pojedynczy znak jako cel i zamiennik. Nie możemy użyć tej metody do usunięcia spacji, ponieważ nie możemy mieć pustego znaku jako zamiennika.

przykład usunięcia wszystkich spacji z ciągu

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

wyjście:

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

replaceAll (String regex, string replacement)

dodano w Javie 1.4, jest to jedna z najpotężniejszych metod manipulacji łańcuchami. Możemy użyć tej metody do wielu celów.

używając metody replaceAll () możemy zastąpić każdy pasujący ciąg wyrażeń regularnych podanym ciągiem zastępczym. Na przykład do usuwania wszystkich spacji, usuwania spacji wiodących, usuwania spacji końcowych i tak dalej.

musimy tylko stworzyć poprawne wyrażenie regularne z poprawnym parametrem zastępczym. Niektóre przykłady wyrażeń regularnych, jak poniżej:

\s + Znajdź wszystkie miejsca
^\s + Znajdź wszystkie spacje na początku linii
\s + $ Znajdź wszystkie spacje na końcu linii

przykład zamiany spacji w string,

Uwaga: w Javie aby dodać ’ / 'musimy użyć znaku escape więc dla” \s+ „musimy użyć” \\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+$", "") + "\""); }}

wyjście:

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

jak widzimy, replaceAll() jest dość potężną metodą, jeśli używamy jej z odpowiednim wyrażeniem regularnym.

różnica między metodą replaceAll i replace

replaceAll () replace()
z Javy 1.4 z Javy 1.5
akceptuje Wyrażenie regularne do identyfikacji celu akceptuje ciąg znaków do identyfikacji celu
używane do naprawy lub dynamicznej wymiany ciągów używane do naprawy ciągów
usuwa znaki o wartości ASCII mniejszej lub równej 'U+0020 'lub’32’ usuwa wszystkie znaki spacji zgodnie z unicode

replaceFirst (string regex, string replacement)

dodano w Javie 1.4, metoda replaceFirst zastępuje tylko pierwsze dopasowanie podanego wyrażenia regularnego ciągiem zastępczym.

ta metoda może być bardzo przydatna, jeśli wystarczy wymienić tylko jedno pierwsze wystąpienie. Na przykład, jeśli musimy tylko usunąć spacje wiodące, możemy użyć „\ \ s+ ” Lub ” ^\ \ s+”.

możemy również użyć tej metody do usunięcia spacji za pomocą wyrażenia regularnego” \\s+$”. Ponieważ to wyrażenie będzie pasować tylko do ostatnich spacji w wierszu. Tak więc ostatnie spacje są uważane za pierwsze dopasowanie dla tej metody.

weźmy przykład usuwania spacji początkowych i końcowych z łańcucha

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

wyjście

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

szybkie czytanie ścieżki :

  • istnieją różne sposoby usuwania spacji z ciągu znaków w Javie
  • trim() jest najczęstszą metodą używaną do usuwania spacji w ciągu znaków
  • metoda trim nie jest świadoma unicode i używa wartości ascii do identyfikacji znaków spacji
  • z Javy 11 dodano nową metodę 'strip()’ do usuwania spacji
  • metoda strip jest świadomy Unicode i powinien być używany do usuwania spacji szczególnie w wielojęzycznym przypadku
  • z Java 11 metody takie jak stripleading() i striptrailing() są zalecane do usuwania spacji początkowych i końcowych.
  • dla bardziej kontrolowanego usuwania spacji możemy użyć replaceAll (), replace (), replaceFirst()

Tematy pokrewne

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Previous post Maine Coon vs Ragdoll: ostateczny Rasa porównanie-Maine Coon Centralny
Next post 7 sposobów na zajęcie, gdy utknąłeś w domu