Javaで文字列からすべての空白を削除するプログラムの作成方法
本記事では、Javaを使って文字列からすべての空白(ホワイトスペース)を削除する方法について解説します。文字列(String型)とは、1つ以上の文字を含み、ダブルクォート(" ")で囲まれたデータ型のことです。
以下に具体的な例を示します。
入力値:
入力文字列: Java programming is fun to learn.
期待される出力:
空白を置き換えた後の文字列: Javaprogrammingisfuntolearn.
アルゴリズム
ステップ1 - 開始
ステップ2 - String input_string と result の2つの文字列変数を宣言する
ステップ3 - 値を定義する
ステップ4 - replaceAll("\\s", "") を使って、すべての空白を空文字に置き換える
ステップ5 - 結果を表示する
ステップ6 - 終了
replaceAllメソッドのポイント
replaceAllメソッドの第1引数には正規表現を指定します。「\\s」は半角スペース・タブ・改行などの空白文字にマッチする正規表現です。これを空文字("")に置き換えることで、文字列内のすべての空白を一括して除去できます。
例1:main関数内ですべての処理を記述する場合
ここでは、すべての操作を「main」関数の中にまとめて実装します。
public class Demo {
public static void main(String[] args) {
String input_string = "Java programming is fun to learn.";
System.out.println("定義された文字列: " + input_string);
String result = input_string.replaceAll("\\s", "");
System.out.println("\n空白を置き換えた後の文字列: " + result);
}
}
出力結果
定義された文字列: Java programming is fun to learn. 空白を置き換えた後の文字列: Javaprogrammingisfuntolearn.
例2:オブジェクト指向スタイルで関数に分割する場合
ここでは、処理を専用の関数としてカプセル化し、オブジェクト指向プログラミングの形式で実装します。
public class Demo {
public static String string_replace(String input_string){
String result = input_string.replaceAll("\\s", "");
return result;
}
public static void main(String[] args) {
String input_string = "Java programming is fun to learn.";
System.out.println("定義された文字列: " + input_string);
String result = string_replace(input_string);
System.out.println("\n空白を置き換えた後の文字列: " + result);
}
}
出力結果
定義された文字列: Java programming is fun to learn. 空白を置き換えた後の文字列: Javaprogrammingisfuntolearn.
補足:別の実装方法
Java 8以降では、Stream APIを利用して次のように記述することも可能です。
String result = input_string.chars()
.filter(c -> !Character.isWhitespace(c))
.mapToObj(c -> String.valueOf((char) c))
.reduce("", String::concat);
なお、Java 11で追加されたstrip()メソッドは文字列の先頭と末尾の空白のみを除去します。文字列全体から空白を取り除きたい場合は、replaceAll("\\s", "")を使用するのが適切です。
-
Javaでリストから重複要素を削除する2つの方法|LinkedHashSetとStream APIのdistinct()
JavaのList(リスト)から重複する要素を削除したい場面は少なくありません。本記事では、代表的な2つの手法――LinkedHashSetを利用する方法と、Stream APIのdistinct()メソッドを利用する方法――を、サンプルコードと実行結果つきでわかりやすく解説します。 方法1: LinkedHashSetを使って重複を削除する LinkedHashSetは、「重複した要素を許さない」かつ「挿入された順序を保持する」という特徴を持つコレクションです。そのため、ListをLinkedHashSetに変換するだけで、元の並び順を保ったまま重複要素を簡単に取り除くことができます。 サン
-
Javaで文字列からアルファベット以外の文字をすべて削除する方法
Javaのsplit()メソッドは、区切り文字を表す文字列を引数として受け取り、その区切り文字をもとに文字列をトークン(単語)の配列へと分割します。2つの区切り文字の間にある部分が1つのトークンとして扱われます。例えば、半角スペース「 」を区切り文字としてこのメソッドに渡すと、スペースとスペースの間にある単語を1つのトークンとみなし、元の文字列に含まれる単語の配列を返します。なお、指定した区切り文字が文字列中に存在しない場合は、文字列全体を1つの要素とする配列が返されます。また、正規表現「\\W+」は、文字列内のすべてのアルファベット以外の文字(句読点、スペース、アンダースコア、特殊記号など)