如果我使用`Arrays.toString`来转换它,那么如何将String转换回String []呢?

时间:2012-04-15 04:50:32

标签: java

我正在使用一个队列服务,它似乎只允许我发送一个字符串作为消息(有点不认为那是对的但是却无法证明其他情况),但我需要3个不同的数据项处理我的工作(int,double和int [])。所以我采用所有三种数据类型并使用Arrays.toString将它们转换为字符串。

我的问题是,一旦我的工作进程得到了我需要将它们转换回来的消息。工作人员看到了这一点:[0, 43.0, [0, 59, 16]]但我不确定如何最有效地转换它。我现在正在做的方法是删除第一个和最后一个字符,然后执行String[] temp = queue_string.split(",");将其作为列表返回。

我很好,如果这种方式是唯一的方式,但我想知道是否有更清洁的方式?就像Arrays.toString有点像String.toArray(这不存在,我已经尝试过了: - )

1 个答案:

答案 0 :(得分: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]
}