java String数组合并

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java String数组合并相关的知识,希望对你有一定的参考价值。

有2个String数组:
如:String[] tem="甲 供0","自 购0","甲 控=0","调 入0","采购站0","材料厂0";
String[] str="材料厂10"," 调 入200"," 甲 控200";

我想要得到如下结果:
String tr="材料厂10, 调 入200, 甲 控200,采购站0,自 购0,甲 供0"
请问大侠们这个要怎么做呢?
怎么个拼接法呢?

参考技术A String tr = "";

for (int i = 0; i < str.length; i++)
tr = tr + ',' + str[i];


tr = tr + ',' + tem[4];
tr = tr + ',' + tem[1];
tr = tr + ',' + tem[0];追问

两都是动态的啊

参考技术B StringBuffer追问

能详细点吗?初学者

追答

你的数据是固定的么?还是说长度也不一定,内容也不一定。
你还是没有叙述详细你的要求,这样大家没办法帮你。

追问

tem长度固定,str<=tem.length

追答

输出的字符串是长度小于等于tem的?内容有什么要求?str你是怎么来的

追问

是的,str,是用字符串切割的

追答

我觉得应该就是简单的string拼接问题,貌似让你弄复杂了呢,循环拼接不行么?
推荐答案的那种方式,循环数组
String tr = "";

for (int i = 0; i < str.length; i++)
tr = tr + ',' + str[i];

参考技术C 将数组的大小定义为6。。。追问

两数组长度不一样呢

求java合并json数据的代码

我想了一下,但是得有一个前提,就是第一个json数组的size必须和第二个json数组的size相同,并且一一对应,否则将造成数组溢出。

如果是基于上面这个前提,那么实现的方法就简单了。

操作json对象,其实标准的方法是将实体类转换成json后再操作,我这里的话为了便捷直接使用谷歌的Gson来创建JsonObject了,其他的json依赖还有阿里巴巴的FastJson等等,看你平时用什么习惯。

引入Gson依赖:

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>

实现代码:

public class Main
public static void main(String[] args)
JsonArray jsonArray1 = new JsonArray();
JsonObject json11 = new JsonObject();
json11.addProperty("数据1", "0000");
json11.addProperty("数据2", "1111");
JsonObject json12 = new JsonObject();
json12.addProperty("数据1", "0000");
json12.addProperty("数据2", "1111");
JsonObject json13 = new JsonObject();
json13.addProperty("数据1", "0000");
json13.addProperty("数据2", "1111");
jsonArray1.add(json11);
jsonArray1.add(json12);
jsonArray1.add(json13);
System.out.println(jsonArray1);

JsonArray jsonArray2 = new JsonArray();
JsonObject json21 = new JsonObject();
json21.addProperty("数据3", "6666");
JsonObject json22 = new JsonObject();
json22.addProperty("数据3", "6666");
JsonObject json23 = new JsonObject();
json23.addProperty("数据3", "6666");
jsonArray2.add(json21);
jsonArray2.add(json22);
jsonArray2.add(json23);
System.out.println(jsonArray2);

//遍历json数组,按位取出对象
for (int i = 0; i < jsonArray1.size(); i++)
JsonObject json1 = jsonArray1.get(i).getAsJsonObject();
JsonObject json3 = jsonArray2.get(i).getAsJsonObject();
//遍历数据3内容,通过Entry获取数据3的key和value,并合并到数据1中
for (Map.Entry<String, JsonElement> item : json3.entrySet())
json1.addProperty(item.getKey(), item.getValue().getAsString());


System.out.println(jsonArray1);

整体思路为:遍历两个json数组,按位进行合并操作。合并时,遍历数据3的jsonObject,获取其key和value,并将其合并到数据1中即可。

运行结果:

参考技术A 遍历两个数组的kv,添加到一个新的jsonarray即可

以上是关于java String数组合并的主要内容,如果未能解决你的问题,请参考以下文章

JAVA怎么合并两个数组

java 数组合并

java两个数组合并

JAVA数组合并请高手指教

如果可能的话,Java如何使用reduce函数将两个数组减少/合并为一个?

合并两个数组,并且把相同的数值覆盖掉