比较整数和字符串数组并得到相应总和的Java代码

问题描述 投票:0回答:1

有两个字符串数组,array1 和 array2。
String[] array1 = {"1", "2", "3", "4","5","6","7"}
String[] array2= {"苹果", "", "", "香蕉", "", "", "橙子"}; 你能帮我写一段java代码来产生类似的输出吗?

字符串[]desiredOutput = {“1”,“5”,“4”,“11”,“7”}

逻辑:array2中只要有空值,就添加array1中对应的值

示例: array2[0] = "apple",因此所需的输出是 array1[0] 的值,输出 ={"1"} array2[1] = "" 和 array2[2] = "" 因此所需的输出是 (array1[1]+array1[2]) 的总和,输出 ={"1","5"} array2[3] = "banana",因此所需的输出是 array1[3] 的值,输出 ={"1","5","4"} array2[4] = "" 和 array2[5] = "" 因此所需的输出是 (array1[4]+array1[5]) 的总和,输出 ={"1","5","4","11"} array2[6] = "orange",所以所需的输出是 array1[6] 的值,输出 ={"1","5","4","11","7"}

谢谢

它尝试过这个,。但失败了 String[] array1 = {"1", "2", "3", "4", "5", "6", "7"}; String[] array2 = {"苹果", "", "", "香蕉", "", "", "橙子"};

// Calculate concatenated values and add them to a new array String[] concatenatedArray = new String[array1.length]; for (int i = 0; i < array1.length; i++) { int value1 = Integer.parseInt(array1[i]); int value2 = (array2[i].isEmpty()) ? 0 : Integer.parseInt(array2[i]); concatenatedArray[i] = String.valueOf(value1 + value2); } // Print the concatenated array in the desired format System.out.print("("); for (int i = 0; i < concatenatedArray.length; i++) { System.out.print("\"" + concatenatedArray[i] + "\""); if (i < concatenatedArray.length - 1) { System.out.print(","); } } System.out.println(")");
    
arrays
1个回答
0
投票
您必须添加 array1[] 元素,直到在 array2[] 中找不到非空元素为止,当满足此条件时,只需替换结果列表中的最后一个索引元素即可。

我相信这就是您正在寻找的

String[] array1 = {"1", "2", "3", "4", "5", "6", "7"}; String[] array2 = {"apple", "", "", "banana", "", "", "orange"}; List<String> result = new ArrayList<>(); int sum=0; for (int i = 0; i < array1.length; i++) { if(array2[i].length() > 0){ sum=0; result.add(array1[i]); } else{ if(sum != 0){ sum += Integer.parseInt(array1[i]); result.set(result.size()-1, String.valueOf(sum)); } else{ sum += Integer.parseInt(array1[i]); result.add(String.valueOf(sum)); } } }
    
© www.soinside.com 2019 - 2024. All rights reserved.