文字列操作は、プログラミング中に最も頻繁 文字列のテキスト内またはその周りのスペースを削除するように。 これは”ストリップ”とも呼ばれ、文字列内の空白を除去する。 そのため、これまでは、javaの文字列からスペースを削除するさまざまな方法、つまりtrim、replaceAllを認識していました。 しかし、java11では、strip、stripLeading、stripTrailingなどのメソッドを使用して、これらにいくつかの新しい追加が行われました。
ほとんどの場合、スペースを削除するにはtrimメソッドを使用します。 私達は決して停止しないし、私達の必要性に適するよりよい方法があるかもしれないことを考えるか。 確かに、trim()はほとんどの場合うまく機能しますが、javaにはさまざまなメソッドがあります。 それぞれが独自の長所と短所を持っています。 どの方法が私たちに最も適しているかをどのように決定しますか?
さて、このブログでは、さまざまな方法を詳細にカバーします。Javaで文字列からスペースを削除するさまざまな方法
注意すべき最も重要な点は、javaではstringオブジェクトは不変であることです。 これは、文字列を変更できないことを意味するため、すべてのメソッドはすべての変換で新しい文字列を返します。
javaのtrim()メソッド
trim()は、java開発者が先頭と末尾のスペースを削除するために最も一般的に使用されるメソッドです。 Trimメソッドのスペース文字とは、ASCII値が32(‘U+0020’)以下の任意の文字を意味します。
スペースを削除するtrimメソッドの例:
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() +"\""); }}
CommandLineRunnerImpl
status=running
Before trim: " String with space "After trim: "String with space"
strip()メソッドJava11
Java11のリリースでは、文字列から先頭と末尾のスペースを削除するための新しいstrip()メソッドが追加されました。
このメソッドは、ASCII値が32(‘U+0020’)を超えるUnicode標準に従ってさまざまなスペース文字があるために追加されました。 例:8193(U+2001)。
これらのスペース文字を識別するために、Java1.5からCharacterクラスに新しいメソッドisWhitespace(int)が追加されました。 このメソッドは、unicodeを使用してスペース文字を識別します。 Unicodeスペース文字の詳細については、こちらをご覧ください。
stripメソッドはこの文字を使用します。広い範囲の空白文字をカバーし、それらを削除するisWhitespace(int)メソッド。
ストリップの例():
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()+"\""); }}
CommandLineRunnerImpl
status=running
Before strip: " String with space "After strip: "String with space"
javaのtrimメソッドとstripメソッドの違い
トリム() | ストリップ() |
---|---|
Javaから1 | Javaから11 |
コードポイント(ASCII)値を使用 | Unicode値を使用 |
先頭と末尾の文字(スペース)を削除 | 先頭と末尾の文字(スペース)を削除します) |
ASCII値が’U+0020’または’32’以下の文字を削除します | unicodeに準拠してすべてのスペース文字を削除します |
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"
上記の例では、trimメソッドが’\u2001’unicode文字で追加されたスペース文字を削除できないことがわかります。
注:windowsマシンで実行している場合、unicodeセットが制限されているため、同様の出力が表示されない場合があります。 オンラインコンパイラを使用してプログラムを実行できます。 いくつかのオンラインコンパイラのリンクは以下の通りです、
Java-8: https://www.jdoodle.com/online-java-compiler/
-11: https://www.tutorialspoint.com/compile_java_online.php
stripLeading()メソッドJava11
Java11で追加されたstripLeading()メソッドは、文字列から先頭のすべてのスペースを削除します。
stripメソッドと同様に、stripLeadingも文字を使用します。空白を識別するためのisWhitespace(int)。
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 "
stripTrailing()メソッドJava11
Java11で追加されたstripTrailing()メソッドは、文字列からすべての終了スペースを削除します。
ストリップメソッドと同様に、ストリップトレイルも文字を使用します。空白を識別するためのisWhitespace(int)。
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):
java1.5から追加されたこのメソッドは、各ターゲット部分文字列を指定された置換文字列に置き換えるために使用されます。
このメソッドは、一致するすべてのターゲット要素を置き換えます。注:もう1つのメソッドreplace(char oldChar、char newChar)がjava stringクラスに存在します。 唯一の違いは、このメソッドがターゲットと置換として単一の文字を取ることです。 置換として空の文字を持つことができないため、このメソッドを使用してスペースを削除することはできません。
文字列からすべてのスペースを削除する例
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(" ", "") + "\""); }}
出力:
Before : " String with space "Replace : "Stringwithspace"
replaceAll(String regex,String replacement)
java1.4で追加された、これは文字列操作のための最も強力な方法の一つです。 この方法は多くの目的に使用できます。
replaceAll()メソッドを使用して、一致する各正規表現の部分文字列を指定された置換文字列に置き換えることができます。 たとえば、すべてのスペースを削除したり、先頭のスペースを削除したり、末尾のスペースを削除したりするとします。
正しい置換パラメータで正しい正規表現を作成するだけです。 以下のようないくつかの正規表現の例:
\s+ | すべてのスペースを検索 |
^\s+ | 行頭のすべてのスペースを検索する |
\s+$ | 行末のすべてのスペースを検索します |
文字列のスペースを置き換える例、
注:javaで’/’を追加するにはエスケープ文字を使用する必要があるため、”\s+”には”\\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+$", "") + "\""); }}
出力:
Before replaceAll : " String with space "Replace all space : "Stringwithspace"Replace all regex : "Stringwithspace"Replace Leading : "String with space "Replace trailing : " String with space"
適切な正規表現で使用すると、replaceAll()はかなり強力なメソッドであることがわかります。
replaceAllとreplaceメソッドの違い
replaceAll() | replace() |
---|---|
Java1.4から | Java1から。5 |
ターゲット識別のための正規表現を受け入れます | ターゲット識別のための文字列を受け入れます |
修正または動的文字列の置換に使用 | 修正文字列の置換に使用 |
ASCII値が’U+0020’または’32’以下の文字を削除します | unicodeに従ってすべてのスペース文字を削除します |
replaceFirst(String regex,String replacement)
java1に追加されました。4、replaceFirstメソッドは、指定された正規表現の最初の一致のみを置換文字列に置き換えます。
このメソッドは、最初の出現を一つだけ置き換える必要がある場合に非常に便利です。 たとえば、先頭のスペースを削除するだけの場合は、”\\s+”または”^\\s+”を使用できます。
このメソッドを使用して、”\\s+$”正規表現を使用して末尾のスペースを削除することもできます。 この式は行の最後のスペースにのみ一致します。 したがって、最後のスペースはこのメソッドの最初の一致と見なされます。
文字列から先頭と末尾のスペースを削除する例を見てみましょう
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+$", "") + "\""); }}
出力
Before : " String with space "Replace : " String with update "Leading : "String with space "Trailing : " String with space"
高速トラックの読み取り :
- javaの文字列からスペースを削除するには、さまざまな方法があります
- trim()は、文字列のスペースを削除するために使用される最も一般的な方法です
- trimメソッまた、多言語の場合に特別にスペースを削除するために使用する必要があります
- java11のstripleading()やstriptrailing()などのメソッドは、先頭と末尾のスペースを削除するため
- スペースをより制御して削除するには、replaceAll()、replace()、replaceFirstを使用できます()