人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

j2se1.4にarrayToString見たいな関数ないですか?
int hoge[] = {1,2,3,4,5};
String mumu = arrayToString(hoge);


mumu = ”12345”;
みたいな関数です。

●質問者: kunitz
●カテゴリ:コンピュータ
✍キーワード:hoge MUMU String 関数
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ozonepapa
●20ポイント

http://docs.sun.com/

昔、Arrayクラスがあったのですが、今はありません。toString()は、ObjectクラスのメソッドなのでArrayに対してtoString()するとなんらかのStringが返されてきていたはずです。ただ、期待するものとは違うと思われます。

いまは、

プリミティブ(基本データ)タイプの配列にいてはラッパークラスのtoString()を使い以下のように

int[] n = {1,2,3,4,5};

String s = ””;

for(int i=0; i<a.length; i++) {

s += Integer.toString(n[i]);

}

参照型の配列に対して、オーバーライドされたtoString()を使いいかのように

Object[] o = {...........};

String s = ””;

for(int i=0; i<a.length; i++) {

s += o[i].toString();

}

なると思われます。

よくつかうのであれば、クラスメソッドとして作っておくといいですね。

◎質問者からの返答

ありがとうございます!


2 ● doikun
●20ポイント

http://jakarta.apache.org/commons/lang/api/

Lang 2.3 API

Jakarta-CommonsのLangに、同様のメソッドが用意されています。

StringUtilsクラスのjoin(Object[] array)メソッドがそれです。

http://jakarta.apache.org/commons/lang/api/org/apache/commons/la...

StringUtils (Lang 2.3 API)

(java.lang.Object[])

使い方は以下の通りです。

import org.apache.commons.lang.StringUtils;

〜〜(省略)〜〜

String anArray = new String { ”A”, ”B”, ”C” }; //intの配列でも可能です。

String joinedString = StringUtils.join(anArray);

実行すると、joinedStringに文字列”ABC”が取得できます。

※実行時、commons-langのjarファイルにクラスパスが通っている必要があります。

commons-langのjarファイルは、以下のURLからダウンロード可能です。

http://sunsite.tus.ac.jp/pub/apache/jakarta/commons/lang/binarie...

プロジェクトの状況や都合等によりCommons-Langを利用できない場合は、ご自分でコーディングすることになると思います。

その際は、文字列の連結にStringBufferを利用することで、処理の高速化を図ることが出来ます。

例えば、以下のように記述します。

String anArray = new String { ”A”, ”B”, ”C” }; //intの配列でも可能です。

StringBuffer results = new StringBuffer();

for (int j = 0; j < anArray.length; j++) {

results.append(strs[j]);

}

results.toString()により、結果の文字列”ABC”を取り出すことが出来ます。

◎質問者からの返答

ありがとうございます!

Jakarta-Commons


3 ● doikun
●20ポイント

http://www.jajakarta.org/commons/

The Ja-Jakarta Site - Commons

すみません、ミスがありました。

Commons-LangのStringUtilsを利用した場合、intの配列を引数に渡すことが出来ません。

さらにもう一つ。

2つ目のサンプルで、

results.append(strs[j]);

としていますが、正しくは

results.append(anArray[j]);

です。

お詫びして訂正致します。

URLは、Jakarta-Commonsの日本語翻訳サイトです。

◎質問者からの返答

ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ