- - PR -
複数の配列を簡単に1つの配列にまとめることはできますか?
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-01-05 17:58
件名がわかりにくくてすみません。
複数の配列を簡単に1つにまとめるってのは String[] a1 = new String {1,2,3}; String[] a2 = new String {4,5,6}; String[] a3 = new String {7,8,9}; を1つの配列にしたいのですが・・・ String[] a = new String[a1.size + a2.size + a3.size]; あとはループで1つづつ入れていく、ちょっと面倒な処理しか思いつかず 簡単になる方法やAPIがあったら教えてほしいです。 | ||||||||
|
投稿日時: 2005-01-05 19:01
private char a [][] = { {'1', '2', '3'},
{'4', '5', '6'}, {'7', '8', '9'}, }; これが面倒臭い場合は、 private char a[] = {'1', '2', '3', '4', '5', '6', '7', '8', '9' }; これも気に入らないと。 しょうがないので、 private static char a1[] = {'1', '2', '3'}; private static char a2[] = {'4', '5', '6'}; private static char a3[] = {'7', '8', '9'}; private static String b; b=new String(a1); b=b.concat(new String(a2)); b=b.concat(new String(a3)); _________________ 日本の中心で、オフを叫ぶ(@名古屋)。 ご意見募集中! コブラ | ||||||||
|
投稿日時: 2005-01-05 19:17
こんな感じ?
public class ArrayCopy { public static void main(String[] args) { String[] a1 = {"1","2","3"}; String[] a2 = {"4","5","6"}; String[] a3 = {"7","8","9"}; String[] b = new String[a1.length+a2.length+a3.length]; int destPos = 0; System.arraycopy(a1, 0, b, destPos, a1.length); destPos += a1.length; System.arraycopy(a2, 0, b, destPos, a2.length); destPos += a2.length; System.arraycopy(a3, 0, b, destPos, a3.length); for (int i=0; i<b.length; i++) { System.out.println(b[i]); } } } | ||||||||
|
投稿日時: 2005-01-05 19:36
Arrays.asList()とList.addAll()とList.toArray()を組み合わせて使うとかどうでしょう
| ||||||||
|
投稿日時: 2005-01-05 19:37
一例として…
import org.apache.commons.lang.StringUtils; : : String[] a1 = {"1","2","3"}; String[] a2 = {"4","5","6"}; String[] a3 = {"7","8","9"}; String tmp = StringUtils.join(a1, ",") + "," + StringUtils.join(a2, ",") + "," + StringUtils.join(a3, ","); String a[] = StringUtils.split(tmp, ","); | ||||||||
|
投稿日時: 2005-01-05 20:53
いっそ配列を捨ててしまうとか。(要J2SE5)
・・・でもOdakazさんの案とほとんど違いませんでしたね。
| ||||||||
|
投稿日時: 2005-01-05 21:44
皆さんありがとうございます。
StringUtilsやArraysと言うのがあるんですね。 わかりやすい解説でとてもためになりました。 |
1