Javaでオブジェクトアレイを文字列アレイに変換する
この投稿では、Javaでオブジェクトアレイを文字列アレイに変換する方法について説明します。
文字列と同じタイプのオブジェクトアレイを変換するには
1.使用する System.arraycopy()
方法
使用できます System.arraycopy() これは、指定されたソースアレイから、指定された位置から開始して、宛先アレイの指定された位置にアレイをコピーします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.Arrays; class Main { //Javaでオブジェクトアレイを文字列アレイに変換するプログラム public static void main(String[] args) { Object[] src = { "NYC", "Washington DC", "New Delhi" }; String[] dest = new String[src.length]; System.arraycopy(src, 0, dest, 0, src.length); System.out.println(Arrays.toString(dest)); } } |
出力:
[NYC, Washington DC, New Delhi]
2.使用する Arrays.copyOf()
方法
使用することもできます Arrays.copyOf() 指定されたアレイを指定されたタイプのアレイにコピーします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.Arrays; class Main { //Javaでオブジェクトアレイを文字列アレイに変換するプログラム public static void main(String[] args) { Object[] objectArray = { "NYC", "Washington DC", "New Delhi" }; String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class); System.out.println(Arrays.toString(stringArray)); } } |
出力:
[NYC, Washington DC, New Delhi]
3.使用する List.toArray()
方法
ここでは、最初にオブジェクトアレイをオブジェクトのリストに変換してから、 toArray(T[])
リストを新しく割り当てられたStringのアレイにダンプするメソッド。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.Arrays; class Main { //Javaでオブジェクトアレイを文字列アレイに変換するプログラム public static void main(String[] args) { Object[] objectArray = { "NYC", "Washington DC", "New Delhi" }; String[] stringArray = Arrays.asList(objectArray) .toArray(new String[0]); // .toArray(new String[objectArray.length]); System.out.println(Arrays.toString(stringArray)); } } |
出力:
[NYC, Washington DC, New Delhi]
4.Java8の使用
Java 8では、Streamを使用してオブジェクトアレイを文字列アレイに簡単に変換できます。アイデアは最初に 指定されたオブジェクトアレイをシーケンシャルストリームに変換します 次に、 toArray()
ストリーム要素を新しい文字列アレイに累積するメソッド。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.Arrays; class Main { //Java8以降でオブジェクトアレイを文字列アレイに変換するプログラム public static void main(String[] args) { Object[] objectArray = { "NYC", "Washington DC", "New Delhi" }; String[] stringArray = Arrays.stream(objectArray) .toArray(String[]::new); System.out.println(Arrays.toString(stringArray)); } } |
出力:
[NYC, Washington DC, New Delhi]
文字列以外のタイプのオブジェクトアレイを変換するには
1.素朴な解決策
文字列以外のタイプのオブジェクトアレイを変換するために、1つのアプローチでは、通常のforループを使用してオブジェクトアレイを反復処理し、すべてのオブジェクトについて、それを文字列にキャストして文字列アレイに割り当てます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.util.Arrays; class Main { //Javaでオブジェクトアレイを文字列アレイに変換するプログラム public static void main(String[] args) { Object[] objectArray = { 1, 2, 3, 4, 5 }; String[] stringArray = new String[objectArray.length]; //オブジェクトアレイから文字列アレイに要素をコピーします for (int i = 0; i < objectArray.length; i++) { stringArray[i] = String.valueOf(objectArray[i]); } System.out.println(Arrays.toString(stringArray)); } } |
出力:
[1, 2, 3, 4, 5]
2.Java8の使用
これはに似ています Java8アプローチ ここで私たちが呼ぶことを除いて、前に議論しました Stream.map()
を呼び出す前に、ストリーム内のすべてのオブジェクトを文字列表現に変換するメソッド toArray()
方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.Arrays; class Main { //Javaでオブジェクトアレイを文字列アレイに変換するプログラム public static void main(String[] args) { Object[] objectArray = { 1, 2, 3, 4, 5 }; String[] stringArray = Arrays.stream(objectArray) .map(Object::toString) .toArray(String[]::new); System.out.println(Arrays.toString(stringArray)); } } |
出力:
[1, 2, 3, 4, 5]
これで、Javaでオブジェクトアレイを文字列アレイに変換できます。