Javaで文字列からアルファベット以外の文字をすべて削除する方法
Javaのsplit()メソッドは、区切り文字を表す文字列を引数として受け取り、その区切り文字をもとに文字列をトークン(単語)の配列へと分割します。2つの区切り文字の間にある部分が1つのトークンとして扱われます。
例えば、半角スペース「 」を区切り文字としてこのメソッドに渡すと、スペースとスペースの間にある単語を1つのトークンとみなし、元の文字列に含まれる単語の配列を返します。
なお、指定した区切り文字が文字列中に存在しない場合は、文字列全体を1つの要素とする配列が返されます。
また、正規表現「\\W+」は、文字列内のすべてのアルファベット以外の文字(句読点、スペース、アンダースコア、特殊記号など)に一致します。
したがって、文字列からアルファベット以外の文字をすべて削除するには、以下の手順を実行します。
対象となる文字列を取得します。
Stringクラスのsplit()メソッドに上記の正規表現を引数として渡し、取得した文字列を文字列型の配列に分割します。
これにより、アルファベット以外の文字ごとに文字列が区切られ、すべてのトークンが文字列配列として返されます。
取得した配列内のすべての要素を連結し、1つの文字列として結合します。
サンプルコード
import java.util.Scanner;
public class RemovingAlphabet {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name: ");
String str = sc.nextLine();
String[] stringArray = str.split("\\W+");
String result = new String();
for(int i = 0; i < stringArray.length;i++){
result = result+ stringArray[i];
}
System.out.println("Result: "+result);
}
}実行結果
Enter your name: Krishna ^% Kasyap*@# Result: KrishnaKasyap
このように、split()メソッドと正規表現を組み合わせることで、文字列から不要な記号や特殊文字を簡単に取り除くことができます。なお、より効率的に文字列を連結したい場合は、StringBuilderやString.join()メソッドを使用すると、ループ処理での文字列連結によるパフォーマンス低下を防ぐことができます。
-
Javaで文字列を文字のリスト(List<Character>)に変換する方法
Javaでは、chars()メソッドとStream APIを組み合わせることで、文字列を簡単にList<Character>へ変換できます。この記事では、その具体的な手順をサンプルコード付きで解説します。 変換の基本アプローチ まず、変換対象となる文字列を用意します。 String str = Website!; この文字列を文字のリストに変換するには、以下のように記述します。 List<Character> list = str.chars().mapToObj(n -> (char)n).collect(Collectors.toList()); 処理の流れを
-
Javaで文字(Character)のリストを文字列に変換する方法
Javaでは、Stream APIとCollectors.joining()を組み合わせることで、文字(Character)のリストを簡単に1つの文字列へ変換できます。この記事では、その基本的な手順とサンプルコードをわかりやすく解説します。 変換の手順 まず、次のような文字のリストがあったとします。 List<Character> list = Arrays.asList(W, e, l, c, o, m, e); このリストを文字列に変換するには、以下のようにstream()、map()、Collectors.joining()を使用します。 String string = li