Heim  >  Artikel  >  Java  >  Welche Möglichkeiten gibt es, Leerzeichen aus String-Strings in Java zu entfernen?

Welche Möglichkeiten gibt es, Leerzeichen aus String-Strings in Java zu entfernen?

WBOY
WBOYnach vorne
2023-05-17 23:31:55954Durchsuche

Es gibt viele verschiedene Möglichkeiten, Leerzeichen aus Zeichenfolgen in Java zu entfernen, z. B. trim, replaceAll usw. Allerdings wurden in JDK 11 einige neue Funktionen hinzugefügt, wie z. B. strip, stripLeading, stripTrailing usw. trimreplaceAll等。但是,在JDK 11添加了一些新的功能,如stripstripLeadingstripTrailing等。

想要从String中移除空格部分,有多少种方法,下面介绍JDK原生自带的方法,不包含第三方工具类库中的类似方法

  • trim() : 删除字符串开头和结尾的空格。

  • strip() : 删除字符串开头和结尾的空格。

  • stripLeading() : 只删除字符串开头的空格

  • stripTrailing() : 只删除字符串的结尾的空格

  • replace() : 用新字符替换所有目标字符

  • replaceAll() : 将所有匹配的字符替换为新字符。此方法将正则表达式作为输入,以标识需要替换的目标子字符串

  • replaceFirst() : 仅将目标子字符串的第一次出现的字符替换为新的字符串

需要注意的最重要的一点是,在Java中String对象是不可变的,这意味着我们不能修改字符串,因此以上所有的方法我们得到的都是一个新的字符串。

trim()

trim()是Java开发人员最常用的删除字符串开头和结尾的空格方法

public class StringTest {
 
    public static void main(String[] args) {
 
        String stringWithSpace = "   Hello word java  ";
 
        StringTest.trimTest(stringWithSpace);
 
    }
 
    private static void trimTest(String stringWithSpace){
 
        System.out.println("Before trim : \'" + stringWithSpace + "\'");
 
        String stringAfterTrim = stringWithSpace.trim();
 
        System.out.println("After trim : \'" + stringAfterTrim + "\'");
 
    }
 
}

输出结果

Before trim : '   Hello word java  '
After trim : 'Hello word java'

通过使用trim方法,原字符串的开头和结尾部分的空格已经被删除。其实,trim移除的空白字符指的是指ASCII值小于或等于32的任何字符(’ U+0020 '):

Welche Möglichkeiten gibt es, Leerzeichen aus String-Strings in Java zu entfernen?

strip()

JDK 11的发行版中,添加了新的strip()方法来删除字符串中的前导和末尾空格。

trim方法只能针对ASCII值小于等于32的字符进行移除,但是根据Unicode标准,除了ASCII中的字符以外,还是有很多其他的空白字符的。

而且为了识别这些空格字符,从Java 1.5开始,还在Character类中添加了新的isWhitespace(int)方法。该方法使用unicode来标识空格字符。

Welche Möglichkeiten gibt es, Leerzeichen aus String-Strings in Java zu entfernen?

而在Java 11中新增的这个strip方法就是使用这个Character.isWhitespace(int)方法来判断是否为空白字符并删除它们的:

Welche Möglichkeiten gibt es, Leerzeichen aus String-Strings in Java zu entfernen?

Welche Möglichkeiten gibt es, Leerzeichen aus String-Strings in Java zu entfernen?

strip示例

public class StringTest {
 
    public static void main(String args[]) {
 
      String stringWithSpace ='\u2001' + "  Hello word java  " + '\u2001';
 
        System.out.println("'" + '\u2001' + "' is space : " +  Character.isWhitespace('\u2001'));
 
        StringTest.stripTest(stringWithSpace);
 
    }
 
    private static void stripTest(String stringWithSpace){
 
        System.out.println("Before strip : \'" + stringWithSpace + "\'");
 
        String stringAfterTrim = stringWithSpace.strip();
 
        System.out.println("After strip : \'" + stringAfterTrim + "\'");
 
    }
 
}

结果

' ' is space : true
Before strip : '   Hello word java   '
After strip : 'Hello word java'

Java 11 中的 strip() 方法要比trim()方法更加强大,他可以移除很多不在ASCII中的空白字符,判断方式就是通过Character.isWhitespace()

Wie viele Methoden gibt es, um Leerzeichen aus String zu entfernen? Im Folgenden werden die nativen Methoden von JDK vorgestellt, mit Ausnahme ähnlicher Methoden in Werkzeugbibliotheken von Drittanbietern

  • trim() : Leerzeichen am Anfang und Ende der Zeichenfolge entfernen.
  • strip() : Leerzeichen am Anfang und Ende der Zeichenfolge entfernen.
  • replace(): Ersetzen Sie alle Ziele Zeichen durch neue Zeichen
  • Der wichtigste zu beachtende Punkt ist, dass String-Objekte in Java unveränderlich sind, was bedeutet, dass wir die Zeichenfolge nicht ändern können, Alle oben genannten Methoden geben uns eine neue Zeichenfolge.

    trim()

    #🎜 🎜#Durch die Trim-Methode wurden die Leerzeichen am Anfang und Ende der ursprünglichen Zeichenfolge entfernt. Tatsächlich beziehen sich die durch Trimmen entfernten Leerzeichen auf alle Zeichen mit einem ASCII-Wert kleiner oder gleich 32 (’ U+0020 '): Wie kann man Leerzeichen aus String-Strings in Java entfernen?“ /><td><h3>strip()</h3 >#🎜 🎜#In der Veröffentlichung von <code>JDK 11</code> wurde eine neue <code>strip()</code>-Methode hinzugefügt, um führende und nachgestellte Leerzeichen aus Zeichenfolgen zu entfernen. </td><td> Mit der Methode <code>trim</code> können nur Zeichen entfernt werden, deren ASCII-Wert kleiner oder gleich 32 ist, laut Unicode-Standard gibt es jedoch zusätzlich zu Zeichen in ASCII noch solche viele andere Leerzeichen von. </td></tr>Und um diese Leerzeichen zu erkennen, wurde ab Java 1.5 der Character-Klasse eine neue isWhitespace(int)-Methode hinzugefügt. Diese Methode verwendet Unicode, um Leerzeichen zu identifizieren. <tr><td><img src=#🎜 🎜#Wie kann man Leerzeichen aus String-Strings in Java entfernen#🎜 🎜## 🎜🎜#Was sind die Möglichkeiten, Leerzeichen aus String-Strings in Java zu entfernenstrip example
    stripLeading() : Nur Leerzeichen am Anfang der Zeichenfolge entfernen stripTrailing(): Entfernen Sie nur die Leerzeichen am Ende der Zeichenfolge
    replaceAll() : Ersetze alle übereinstimmenden Zeichen durch neue Zeichen. Diese Methode verwendet als Eingabe einen regulären Ausdruck, um die Zielteilzeichenfolge zu identifizieren, die ersetzt werden muss replaceFirst() : Ersetzen Sie nur die Zielteilzeichenfolge Das erste Vorkommen von Zeichen wird durch eine neue Zeichenfolge ersetzt
    trim() ist die von Java-Entwicklern am häufigsten verwendete Methode zum Entfernen von Leerzeichen am Anfang und Ende einer Zeichenfolge #🎜 🎜#
    public class StringTest {
     
        public static void main(String args[]) {
     
          String stringWithSpace =&#39;\u2001&#39; + "  Hello word java  " + &#39;\u2001&#39;;
     
            System.out.println("&#39;" + &#39;\u2001&#39; + "&#39; is space : " +  Character.isWhitespace(&#39;\u2001&#39;));
     
            StringTest.stripLeadingTest(stringWithSpace);
     
            StringTest.stripTrailingTest(stringWithSpace);
     
        }
     
     
        private static void stripLeadingTest(String stringWithSpace){
            System.out.println("删除开头的空白字符");
     
            System.out.println("Before stripLeading : \&#39;" + stringWithSpace + "\&#39;");
     
            String stringAfterTrim = stringWithSpace.stripLeading();
     
            System.out.println("After stripLeading : \&#39;" + stringAfterTrim + "\&#39;");
     
        }
     
     
         private static void stripTrailingTest(String stringWithSpace){
             System.out.println("删除结尾的空白字符");
     
            System.out.println("Before stripTrailing : \&#39;" + stringWithSpace + "\&#39;");
     
            String stringAfterTrim = stringWithSpace.stripTrailing();
     
            System.out.println("After stripTrailing : \&#39;" + stringAfterTrim + "\&#39;");
     
        }
     
    }
    # 🎜🎜#Ausgabeergebnis
    Vor dem Trimmen: 'Hallo Wort Java'
    Nach dem Trimmen: 'Hallo Wort Java'
    Die in Java 11 hinzugefügte Strip-Methode verwendet die Methode Character.isWhitespace(int), um zu ermitteln, ob es sich um Leerzeichen handelt, und um sie zu löschen:
     public class StringTest {
     
        public static void main(String args[]) {
     
            String stringWithSpace ="  Hello word java  ";
     
            StringTest.replaceTest(stringWithSpace);
     
        }
     
     
     
        private static void replaceTest(String stringWithSpace){
     
            System.out.println("Before replace : \&#39;" + stringWithSpace + "\&#39;");
     
            String stringAfterTrim = stringWithSpace.replace(" ", "");
     
            System.out.println("After replace : \&#39;" + stringAfterTrim + "\&#39;");
     
        }
     
    }
    #🎜🎜#result#🎜🎜#
    #🎜🎜#' ' ist Leerzeichen : true
    Vor dem Strip : 'Hallo Wort Java 'Nach dem Strip: 'Hallo Wort Java'#🎜🎜#
    #🎜🎜#Die strip()-Methode in Java 11 ist besser als trim() The Die Methode code> ist leistungsfähiger. Sie kann viele Leerzeichen entfernen, die nicht in ASCII vorliegen. Die Beurteilung erfolgt über die Methode <code>Character.isWhitespace(). #🎜🎜##🎜🎜#Der Unterschied zwischen den Methoden trim() und strip()#🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#trim#🎜🎜##🎜🎜#strip# 🎜 🎜##🎜🎜##🎜🎜##🎜🎜#Java 1 eingeführt #🎜🎜##🎜🎜#Java 11 eingeführt #🎜🎜##🎜🎜##🎜🎜##🎜🎜#ASCII verwenden# 🎜🎜 # #🎜🎜#Unicode-Werte verwenden #🎜🎜##🎜🎜##🎜🎜##🎜🎜#Führende und nachfolgende Leerzeichen entfernen #🎜🎜##🎜🎜#Führende und nachfolgende Leerzeichen entfernen #🎜🎜# # 🎜🎜##🎜🎜##🎜🎜#Entfernen Sie Zeichen, deren ASCII-Wert kleiner oder gleich „U+0020“ oder „32“ ist. #🎜🎜##🎜🎜#Entfernen Sie alle Leerzeichen gemäß Unicode # 🎜🎜##🎜 🎜##🎜🎜##🎜🎜#

    stripLeading() 和 stripTrailing()

    stripLeading()stripTrailing()方法也都是在Java 11中添加的。作用分别是删除字符串的开头的空格以及删除字符串的末尾的空格。
    stripLeadingstripTrailing也使用Character.isWhitespace(int)来标识空白字符。用法也和strip类似:

    public class StringTest {
     
        public static void main(String args[]) {
     
          String stringWithSpace =&#39;\u2001&#39; + "  Hello word java  " + &#39;\u2001&#39;;
     
            System.out.println("&#39;" + &#39;\u2001&#39; + "&#39; is space : " +  Character.isWhitespace(&#39;\u2001&#39;));
     
            StringTest.stripLeadingTest(stringWithSpace);
     
            StringTest.stripTrailingTest(stringWithSpace);
     
        }
     
     
        private static void stripLeadingTest(String stringWithSpace){
            System.out.println("删除开头的空白字符");
     
            System.out.println("Before stripLeading : \&#39;" + stringWithSpace + "\&#39;");
     
            String stringAfterTrim = stringWithSpace.stripLeading();
     
            System.out.println("After stripLeading : \&#39;" + stringAfterTrim + "\&#39;");
     
        }
     
     
         private static void stripTrailingTest(String stringWithSpace){
             System.out.println("删除结尾的空白字符");
     
            System.out.println("Before stripTrailing : \&#39;" + stringWithSpace + "\&#39;");
     
            String stringAfterTrim = stringWithSpace.stripTrailing();
     
            System.out.println("After stripTrailing : \&#39;" + stringAfterTrim + "\&#39;");
     
        }
     
    }

    输出结果:

    ' ' is space : true
    删除开头的空白字符
    Before stripLeading : '   Hello word java   '
    After stripLeading : 'Hello word java   '
    删除结尾的空白字符
    Before stripTrailing : '   Hello word java   '
    After stripTrailing : '   Hello word java'

    replace

    replace是从java 1.5中添加的,可以用指定的字符串替换每个目标子字符串。

    此方法替换所有匹配的目标元素

     public class StringTest {
     
        public static void main(String args[]) {
     
            String stringWithSpace ="  Hello word java  ";
     
            StringTest.replaceTest(stringWithSpace);
     
        }
     
     
     
        private static void replaceTest(String stringWithSpace){
     
            System.out.println("Before replace : \&#39;" + stringWithSpace + "\&#39;");
     
            String stringAfterTrim = stringWithSpace.replace(" ", "");
     
            System.out.println("After replace : \&#39;" + stringAfterTrim + "\&#39;");
     
        }
     
    }

    结果:

    Before replace : '  Hello word java  '
    After replace : 'Hellowordjava'

    使用replace方法可以替换掉字符串中的所有空白字符。需要特别注意的是,和trim方法一样,replace方法只能替换ASCII中的空白字符。

    replaceAll

    replaceAll是Jdk 1.4中添加的最强大的字符串操作方法之一。我们可以将这种方法用于许多目的。
    使用replaceAll()方法,我们可以使用正则表达式来用来识别需要被替换的目标字符内容。使用正则表达式,就可以实现很多功能,如删除所有空格,删除开头空格,删除结尾空格等等。

    \s+   所有的空白字符
    ^\s+      字符串开头的所有空白字符
    \s+$      字符串结尾的所有空白字符

    在java中要添加\我们必须使用转义字符,所以对于\s+ 我们必须使用 \\s+

    replaceAll(regex, “”); // 将正则表达式匹配到的内容,替换为""

    public class StringTest {
     
        public static void main(String args[]) {
     
            String stringWithSpace ="  Hello word java  ";
     
            StringTest.replaceAllTest(stringWithSpace," ");
     
            StringTest.replaceAllTest(stringWithSpace,"\\s+");
     
            StringTest.replaceAllTest(stringWithSpace,"^\\s+");
     
            StringTest.replaceAllTest(stringWithSpace,"\\s+$");
     
        }
     
     
        private static void replaceAllTest(String stringWithSpace,String regex){
     
            System.out.println("Before replaceAll with &#39;"+ regex +"&#39;: \&#39;" + stringWithSpace + "\&#39;");
     
            String stringAfterTrim = stringWithSpace.replaceAll(regex, "");
     
            System.out.println("After replaceAll with &#39;"+ regex +"&#39;: \&#39;" + stringAfterTrim + "\&#39;");
     
        }
     
    }

    Before replaceAll with ' ': '  Hello word java  '
    After replaceAll with ' ': 'Hellowordjava'
    Before replaceAll with '\s+': '  Hello word java  '
    After replaceAll with '\s+': 'Hellowordjava'
    Before replaceAll with '^\s+': '  Hello word java  '
    After replaceAll with '^\s+': 'Hello word java  '
    Before replaceAll with '\s+$': '  Hello word java  '
    After replaceAll with '\s+$': '  Hello word java'

    replaceFirst

    replaceFirst方法也是在jdk1.4中添加的,它只将给定正则表达式的第一个匹配项替换为替换字符串。

    public class StringTest {
     
        public static void main(String args[]) {
     
            String stringWithSpace ="  Hello word java  ";
     
            StringTest.replaceFirstTest(stringWithSpace," ");
     
            StringTest.replaceFirstTest(stringWithSpace,"\\s+");
     
            StringTest.replaceFirstTest(stringWithSpace,"^\\s+");
     
            StringTest.replaceFirstTest(stringWithSpace,"\\s+$");
     
        }
     
     
        private static void replaceFirstTest(String stringWithSpace,String regex){
     
            System.out.println("Before replaceFirst with &#39;"+ regex +"&#39;: \&#39;" + stringWithSpace + "\&#39;");
     
            String stringAfterTrim = stringWithSpace.replaceFirst(regex, "");
     
            System.out.println("After replaceFirst with &#39;"+ regex +"&#39;: \&#39;" + stringAfterTrim + "\&#39;");
     
        }
     
    }

    结果:

    Before replaceFirst with ' ': '  Hello word java  '
    After replaceFirst with ' ': ' Hello word java  '
    Before replaceFirst with '\s+': '  Hello word java  '
    After replaceFirst with '\s+': 'Hello word java  '
    Before replaceFirst with '^\s+': '  Hello word java  '
    After replaceFirst with '^\s+': 'Hello word java  '
    Before replaceFirst with '\s+$': '  Hello word java  '
    After replaceFirst with '\s+$': '  Hello word java'

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, Leerzeichen aus String-Strings in Java zu entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen