2012-04-15 13 views
0

私はメッセージとして文字列を送信することができるように見えるキューサービスを使用しています(それは正しいとは思えませんが、そうでないと証明できませんでした)。しかし、私は3つの異なるデータアイテムが必要です私の仕事を処理する(int、double、int [])。だから私はすべての3つのデータ型をとり、Arrays.toStringを使って文字列に変換します。最初のように `Arrays.toString`を使って変換した場合、StringをString []に変換するにはどうしたらいいですか?

私の問題は、ワーカープロセスがそれらを変換する必要があるメッセージを取得した後です。作業者はこれを見ます:[0, 43.0, [0, 59, 16]]しかし私はそれを最も効率的に変換する方法がわかりません。私が今やっているやり方は、最初と最後の文字を削除してからString[] temp = queue_string.split(",");を実行してリストに戻すことです。

この方法が唯一の方法であれば問題ありませんが、よりクリーンな方法があるのでしょうか? Arrays.toStringString.toArrayのようなものです(これは存在しません、私はすでに試しました:-)

+0

複製[質問](http://stackoverflow.com/questions/456367/reverse-parse-the-output-of-配列 - tostringint)。前述のように、あなたの最善の策はStringUtilsを使うことでしょう。 – Ravi

答えて

4

私は、プロセス間で転送されるデータの形式としてJSONのような標準を使用することをお勧めします。文字列からネイティブデータ型にデータを簡単にマーシャリングし、Javaで戻すことができます。

Gson gson = new Gson(); 

int[] sub = { 0, 59, 16 }; 
Object[] values = { 0, 43.0, sub }; 
String output = gson.toJson(values);  // => [0, 43.0,[0,59,16]] 

Object[] deserialized = gson.fromJson(output, Object[].class); 
for (Object obj : deserialized) { 
    // => 0.0, 43.0, [0.0, 59.0, 16.0] 
} 
+0

Gsonのlib Rocksでは、私はdbと新しいGson()に文字列を格納するためにArray.toString(int [])を使います。fromJson(raw、int []。それを元に戻す。ありがとう! – SjoerdvGestel

関連する問題