Java で文字列を char 配列に変換する
この記事では、Java で文字列を char 配列に変換する方法について説明します。
Java では文字列を char 配列に変換する方法がいくつかあります。これは、文字列内の一連の文字を個々の文字に分割し、配列に格納するプロセスです。考えられる方法としては次のようなものがあります。
1.使用する String.toCharArray()
方法
Java で文字列を char 配列に変換する簡単で最も一般的な方法は、 String.toCharArray()
このメソッドは、文字列と同じ文字を含む新しい char 配列を返します。例えば:
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.util.Arrays; class Main { public static void main(String[] args) { String s = "Java"; char[] chars = s.toCharArray(); System.out.print(Arrays.toString(chars)); // [J, a, v, a] } } |
2. ループを使う
別のオプションは、 for ループ 文字列の文字を反復処理し、それらを新しい char 配列に割り当てます。この方法では、文字列と同じ長さの新しい char 配列を作成し、 String.charAt()
インデックスによって文字列の各文字にアクセスするメソッド。このアプローチは、より小さい文字列に使用できます。例えば:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.Arrays; class Main { public static void main(String[] args) { String s = "Java"; char[] chars = new char[s.length()]; for (int i = 0; i < s.length(); i++) { chars[i] = s.charAt(i); } System.out.print(Arrays.toString(chars)); // [J, a, v, a] } } |
3.リフレクションの使用
Java で文字列を char 配列に変換する 3 番目の方法は、 Reflection。長い文字列の場合、パフォーマンスの点で反射に勝るものはありません。リフレクションを使用して任意の文字列を検査し、指定された文字列のバッキング配列にアクセスできます。このタスクにリフレクションを使用する方法の例を次に示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import java.lang.reflect.Field; import java.util.Arrays; class Main { public static void main(String[] args) { String s = "Java"; Field field = null; try { field = String.class.getDeclaredField("value"); } catch (NoSuchFieldException e) { e.printStackTrace(); } field.setAccessible(true); char[] chars = new char[0]; try { chars = (char[]) field.get(s); } catch (IllegalAccessException e) { e.printStackTrace(); } System.out.print(Arrays.toString(chars)); // [J, a, v, a] } } |
ご了承ください setAccessible()
このメソッドは Java 9 で非推奨となり、将来は機能しなくなります。したがって、コードは不正なリフレクション アクセス操作を引き起こし、スローされます。 java.lang.IllegalAccessException
。 Java で文字列を char 配列に変換する方法は以上です。
関連記事: