Java中单个字符串数组中两个整数数组的元素之和

Java中单个字符串数组中两个整数数组的元素之和,java,java-8,Java,Java 8,我有一个字符串数组,它包含两个整数数组[“[1,2,3]”,“[4,5,6,7,8]” 我想添加整数数组的元素,例如-1+4,2+5,3+6,并在单个整数数组中存储和打印结果-[4,7,9,7,8] 解决这个问题的有效方法是什么?String[]strArray={[1,2,3],“[4,5,6,7,8]”; String[] strArray={"[1,2,3]","[4,5,6,7,8]"}; String[] s1=strArray[0].subst

我有一个字符串数组,它包含两个整数数组[“[1,2,3]”,“[4,5,6,7,8]”

我想添加整数数组的元素,例如-1+4,2+5,3+6,并在单个整数数组中存储和打印结果-[4,7,9,7,8]

解决这个问题的有效方法是什么?

String[]strArray={[1,2,3],“[4,5,6,7,8]”;
String[] strArray={"[1,2,3]","[4,5,6,7,8]"};
String[] s1=strArray[0].substring(1, strArray[0].length() - 1).split(",");
String[] s2=strArray[1].substring(1, strArray[1].length() - 1).split(",");

// put string array length which ever length is bigger like in this case s2 is bigger than s1 and loop through it.
Integer[] output = new Integer[s2.length];

for(int i=0; i < s2.length; i++) {
    if(i < s1.length) {
        output[i] = Integer.parseInt(s1[i]) + Integer.parseInt(s2[i]);
    } else {
        output[i] = Integer.parseInt(s2[i]);
    }
}
            
for(int j=0;j<output.length;j++) {
    System.out.println(output[j]);
}
字符串[]s1=strArray[0]。子字符串(1,strArray[0]。长度()-1)。拆分(“,”; 字符串[]s2=strArray[1]。子字符串(1,strArray[1]。长度()-1)。拆分(“,”; //放置字符串数组长度,它的任何长度都大于,就像在本例中s2大于s1,并循环通过它。 整数[]输出=新整数[s2.长度]; 对于(int i=0;i
String[] strArray={"[1,2,3]","[4,5,6,7,8]"};

String[] strArray1 = strArray[0].substring(1, strArray[0].length()-1).split(",");
String[] strArray2 = strArray[1].substring(1, strArray[1].length()-1).split(",");

int maxArrLength = Math.max(strArray1.length, strArray2.length);

int[] resultIntArray = new int[maxArrLength];

for (int i=0; i < maxArrLength; i++) {
    if (strArray1.length>i) resultIntArray[i] += Integer.valueOf(strArray1[i]);
    if (strArray2.length>i) resultIntArray[i] += Integer.valueOf(strArray2[i]);
}

System.out.println(Arrays.toString(resultIntArray));
String[]strArray={[1,2,3],“[4,5,6,7,8]”;
字符串[]strArray1=strArray[0]。子字符串(1,strArray[0]。长度()-1)。拆分(“,”;
字符串[]strArray2=strArray[1]。子字符串(1,strArray[1]。长度()-1)。拆分(“,”;
int maxArrLength=Math.max(strArray1.length,strArray2.length);
int[]resultIntArray=新int[maxArrLength];
对于(int i=0;ii)resultinArray[i]+=Integer.valueOf(strArray1[i]);
如果(strArray2.length>i)resultinArray[i]+=Integer.valueOf(strArray2[i]);
}
System.out.println(Arrays.toString(resultinArray));

到目前为止您尝试了什么?1)创建一个新数组
c
,其长度为较大的数组
b
。2) 从
i=0
迭代到较小数组
a
的长度。3) 将两个数组(
a
b
)的索引
i
处的数字相加,并将它们放入索引
i
处的新数组
c
。4) 将较大数组
b
的其余元素放入新数组
c
这将失败,例如:
{“[4,5,6,7,8]”,“[1,2,3]”
这是有关输入的逻辑,您可以检查哪个字符串数组长度更大,并根据它进行循环。例如,在您的输入案例中,第一个字符串数组长度大于s2=strArray[0]。子字符串(1,strArray[0]。长度()-1)。拆分(“,”;