Javaで文字列から文字を削除する方法

紹介

この記事では、JavaのStringオブジェクトから文字を削除するいくつかの方法を学びます。 Stringクラスにはremove()メソッドがありませんが、replace()メソッドとsubstring()メソッドの変形を使用して、文字列から文字を削除することができます。

注意: Stringオブジェクトは不変です。つまり、作成された後に変更することはできません。 この記事で説明するStringクラスのすべてのメソッドは、新しいStringオブジェクトを返し、元のオブジェクトを変更しません。 使用する文字列の種類は、プログラムの要件に依存します。 他の種類の文字列クラスなぜJavaで文字列が不変なのかについて詳しく学びましょう。

Stringクラスには、文字を置換または削除するために使用できる次のメソッドがあります:

  • replace(char oldChar, char newChar):指定された文字列内のoldCharのすべての出現をnewCharで置き換えた新しいStringオブジェクトを返します。 replace()メソッドをreplace(CharSequence target, CharSequence replacement)の形式で使用して、指定された文字列内の部分文字列を置換する新しいStringオブジェクトを返すこともできます。
  • replaceFirst(String regex, String replacement): 正規表現と一致する最初の部分文字列を置換文字列で置き換えた新しいStringオブジェクトを返します。
  • replaceAll(String regex, String replacement): 正規表現と一致する各部分文字列を置換文字列で置き換えた新しいStringオブジェクトを返します。
  • substring(int start, int end): このシーケンスに現在含まれる文字の部分列を含む新しいStringオブジェクトを返します。部分文字列は指定された開始位置から、指定された終了位置の直前まで拡張されます。

注意: replaceAll()およびreplaceFirst()メソッドの最初の引数は正規表現です。正規表現を使用して文字列からパターンを削除できます。

注意:replace()メソッドを使用する場合は、リテラル文字列の値を示すために二重引用符を使用する必要があります。シングルクォートを使用すると、JREは文字定数を指定していると見なし、プログラムをコンパイルする際にエラーが発生します。

Javaで文字列から文字を削除する

Javaで文字列から特定の文字をすべて削除するには、replace()メソッドを使用して文字を空の文字列で置き換えます。次の例コードは、指定された文字列からすべての小文字の「a」を削除します:

String str = "abc ABC 123 abc";
String strNew = str.replace("a", "");
Output
bc ABC 123 bc

Javaで文字列からスペースを削除する

Javaで文字列からスペースを削除するには、replace()メソッドを使用してスペースを空の文字列で置き換えます。次の例コードは、指定された文字列からすべてのスペースを削除します:

String str = "abc ABC 123 abc";
String strNew = str.replace(" ", "");
Output
abcABC123abc

Javaで文字列から部分文字列を削除する

Javaで文字列から特定の文字または部分文字列の最初の出現のみを削除するには、replaceFirst()メソッドを使用して文字または部分文字列を空の文字列で置き換えます。次の例コードは、指定された文字列から「ab」の最初の出現を削除します:

String str = "abc ABC 123 abc";
String strNew = str.replaceFirst("ab", "");
Output
c ABC 123 abc

Javaで文字列からすべての小文字を削除する方法

Javaで文字列から特定のパターンに一致する文字を削除するには、正規表現を使用し、replace.All()メソッドを使用して文字を空の文字列で置き換えます。次の例のコードは、与えられた文字列からすべての小文字を削除します:

String str = "abc ABC 123 abc";
String strNew = str.replaceAll("([a-z])", "");
Output
ABC 123

Javaで文字列から最後の文字を削除する方法

文字列から最後の文字を置換または削除する特定のメソッドはありませんが、String substring()メソッドを使用して文字列を切り詰めることができます。次の例のコードは、与えられた文字列から最後の文字を削除します:

String str = "abc ABC 123 abc";
String strNew = str.substring(0, str.length()-1);
Output
abc ABC 123 ab

試してみてください

次の例ファイルは、この記事で提供されているすべてのメソッド例を含むクラスを定義し、与えられた文字列に対して各メソッドを呼び出した後の結果を出力します。異なる文字列と異なるマッチングパターンおよび置換値を使用して自分自身で試すために、この例コードを使用できます。

Javaがインストールされている場合は、JavaStringRemove.javaという新しいファイルを作成し、次のコードをファイルに追加できます。

JavaStringRemove.java

public class JavaStringRemove {

	public static void main(String[] args) {
    	String str = "abc ABC 123 abc";

		// Javaで文字列から文字を削除する
		System.out.println("String after removing all the 'a's = "+str.replace("a", ""));

		// Javaで文字列からスペースを削除する
		System.out.println("String after removing all the spaces = "+str.replace(" ", ""));

		// Javaで文字列から部分文字列を削除する
		System.out.println("String after removing the first 'ab' substring = "+str.replaceFirst("ab", ""));

		// Javaで文字列からすべての小文字を削除する
		System.out.println("String after removing all the lowercase letters = "+str.replaceAll("([a-z])", ""));

		// Javaで文字列から最後の文字を削除する
		System.out.println("String after removing the last character = "+str.substring(0, str.length()-1));
	}

}

プログラムをコンパイルして実行します。

  1. javac JavaStringRemove.java
  2. java JavaStringRemove

次の出力が得られます。

Output
String after removing all the 'a's = bc ABC 123 bc String after removing all the spaces = abcABC123abc String after removing the first 'ab' substring = c ABC 123 abc String after removing all the lowercase letters = ABC 123 String after removing the last character = abc ABC 123 ab

JavaStringRemoveの例クラスの各メソッドは、指定された文字列に対して動作します。出力は、各メソッドで指定された文字が文字列から削除されていることを示しています。

結論

この記事では、Stringクラスのメソッドを使用して、Javaで文字列から文字を削除するさまざまな方法を学びました。これには、replace()replaceAll()replaceFirst()substring()が含まれます。さらに学習を続けて、より多くのJavaチュートリアルを行ってください。

Source:
https://www.digitalocean.com/community/tutorials/java-remove-character-string