ホームページ  >  記事  >  Java  >  Javaで文字列からスペースを削除する方法は何ですか?

Javaで文字列からスペースを削除する方法は何ですか?

WBOY
WBOY転載
2023-05-17 23:31:55954ブラウズ

Java では、文字列からスペースを削除するさまざまな方法 (trimreplaceAll など) があります。ただし、JDK 11 には、stripstripLeadingstripTrailing などのいくつかの新機能が追加されています。

文字列からスペースを削除するメソッドはいくつありますか? 以下では、サードパーティ ツール ライブラリの同様のメソッドを除く、JDK のネイティブ メソッドを紹介します。

  • trim() : 文字列の先頭と末尾のスペースを削除します。

  • strip() : 文字列の先頭と末尾のスペースを削除します。

  • stripLeading() : 文字列の先頭のスペースのみを削除します

  • stripTrailing() : 文字列の末尾のスペースのみを削除します

  • ##replace() : 対象の文字をすべて新しい文字に置き換えます

  • #replaceAll()

    : 一致するすべての文字を新しい文字に置き換えます。このメソッドは、置換する必要があるターゲット部分文字列を識別するための正規表現を入力として受け取ります。

  • replaceFirst()

    : ターゲット部分文字列の最初の発生時のみを置換します。文字は新しい文字列に置き換えられます

  • 注意すべき最も重要なことは、Java では String オブジェクトは不変です。つまり、文字列を変更できないため、上記のすべてのメソッドで新しい文字列が得られます。

trim()

trim()

は、文字列 <pre class="brush:java;">public class StringTest { public static void main(String[] args) { String stringWithSpace = &quot; Hello word java &quot;; StringTest.trimTest(stringWithSpace); } private static void trimTest(String stringWithSpace){ System.out.println(&quot;Before trim : \&amp;#39;&quot; + stringWithSpace + &quot;\&amp;#39;&quot;); String stringAfterTrim = stringWithSpace.trim(); System.out.println(&quot;After trim : \&amp;#39;&quot; + stringAfterTrim + &quot;\&amp;#39;&quot;); } }</pre>## の先頭と末尾にあるスペースを削除するために Java 開発者によって最も一般的に使用されるメソッドです。 #出力結果

トリム前 : 'Hello word java '

トリム後 : 'Hello word java'


トリムメソッドを使用すると、先頭と末尾が元の文字列からスペースが削除されています。実際、trim によって削除される空白文字は、ASCII 値が 32 (’ U 0020 ') 以下の任意の文字を指します:

strip()Javaで文字列からスペースを削除する方法は何ですか?

JDK 11

のリリースでは、文字列から先頭と末尾のスペースを削除するための新しい

strip() メソッドが追加されました。 trim

メソッドは、ASCII 値が 32 以下の文字のみを削除できますが、Unicode 標準によれば、ASCII の文字に加えて、他にも多くの空白が存在します。文字。

そして、これらのスペース文字を認識するために、Java 1.5 以降、新しい isWhitespace(int) メソッドが Character クラスに追加されました。このメソッドは Unicode を使用してスペース文字を識別します。

Java 11 で新しく追加されたstrip メソッドは、Character.isWhitespace(int) メソッドを使用して空白文字かどうかを判断し、空白文字を削除します。 Javaで文字列からスペースを削除する方法は何ですか?

##strip exampleJavaで文字列からスペースを削除する方法は何ですか?

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.stripTest(stringWithSpace);
 
    }
 
    private static void stripTest(String stringWithSpace){
 
        System.out.println("Before strip : \&#39;" + stringWithSpace + "\&#39;");
 
        String stringAfterTrim = stringWithSpace.strip();
 
        System.out.println("After strip : \&#39;" + stringAfterTrim + "\&#39;");
 
    }
 
}

result

Javaで文字列からスペースを削除する方法は何ですか?

' はスペース : true

Before ストリップ : 'Hello word java '

After ストリップ : 'Hello word java'

Java 11 のstrip()
メソッドは
trim()# より高速です ## メソッドはより強力です。ASCII にない多くの空白文字を削除できます。判定方法は、

Character.isWhitespace()
メソッドを使用します。

#trim() メソッドとstrip() メソッドの違いtrim

strip

Java 1 の導入ASCII を使用する削除先頭と末尾の空白文字ASCII 値が ’U 0020’ または ’32&rsquo 以下の文字を削除します;

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'

Java 11 の導入
Unicode 値を使用する
先頭と末尾の空白文字を削除
unicode に従ってすべての空白文字を削除します

以上がJavaで文字列からスペースを削除する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。