Java 如果我首先使用“Arrays.toString”将字符串转换为那样的字符串,那么如何将其转换回字符串[]?
我正在使用一个队列服务,它似乎只允许我发送一个字符串作为消息(有点不认为这是正确的,但还不能证明其他),但我需要3个不同的数据项来处理我的工作(int、double和int[])。因此,我使用Java 如果我首先使用“Arrays.toString”将字符串转换为那样的字符串,那么如何将其转换回字符串[]?,java,Java,我正在使用一个队列服务,它似乎只允许我发送一个字符串作为消息(有点不认为这是正确的,但还不能证明其他),但我需要3个不同的数据项来处理我的工作(int、double和int[])。因此,我使用Arrays.toString将所有三种数据类型转换为字符串 我的问题是,一旦我的工作进程收到需要将其转换回的消息。工人看到了这一点:[0,43.0,[0,59,16]],但我不知道如何最有效地转换它。我现在的做法是删除第一个和最后一个字符,然后执行String[]temp=queue\u String.s
Arrays.toString
将所有三种数据类型转换为字符串
我的问题是,一旦我的工作进程收到需要将其转换回的消息。工人看到了这一点:[0,43.0,[0,59,16]]
,但我不知道如何最有效地转换它。我现在的做法是删除第一个和最后一个字符,然后执行String[]temp=queue\u String.split(“,”)
将其作为列表返回
如果这条路是唯一的路,我很好,但我想知道有没有更干净的路?就像
数组。toString
是否有类似字符串的东西。toArray
(这不存在,我已经尝试过了:-)我认为最好使用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]
}
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]
}