我正在编写一个处理信号的java代码,我遇到了如下所述的情况:
输入给定:字符串数组arr1和arr2。输出REQD:字符串数组arr3
String[] arr1= {"A", "c", "c", "", "", "c", "c", "B", "", "c","c", "", "A", "", "", "B", "B", "A"};
String[] arr2= {"2", "3", "3", "", "", "2", "1", "3", "", "2","3", "", "2", "", "", "3", "2", "3"};
String[] arr3= {"11", "", "", "", "", "", "", "8", "", "", "", "", "2", "", "", "3", "2", "3"};
算法:1. arr1有4种类型的元素:"A"、"B"、"c"one_answers"。
arr2在arr1中的"A"、"B"、"c"对应的索引处有一些数字字符串,如"2"、"3"等,arr1中的元素"在arr2中有对应的元素"。
arr3由arr1和arr2组成
arr3的Number string只对应arr1中的A、B元素
在arr3中,第一个数字字符串"11"是从"2"、"3"、"3"、"、"、"2"、"1"的总和中取的。这些是从"A"到"B"的元素(包括"A",不包括"B")。"8"是"3"、"2"、"3"、"的总和。下一个"2"来自于"2",","的总和。最后很明显,"3"、"2"、"3"分别来自"3"、"2"、"3"。
作为编程和java的新手,我在上述情况下需要帮助。
我建议您将arr2和arr3声明为int数组,这将有助于您轻松进行任何数学运算。
说到解决的方法,我们可以做的是为所有3个数组维护一个公共索引,然后对arr1进行检查,并对arr2和arr3进行必要的操作。
String[] arr1 = {"A", "c", "c", "", "", "c", "c", "B", "", "c","c", "", "A", "", "", "B", "B", "A"};
int[] arr2 = {2, 3, 3, 0, 0, 2, 1, 3, 0, 2, 3, 0, 2, 0, 0, 3, 2, 3};
int len = arr1.length, sum=0;
int[] arr3 = new int[len];
for(int i=0; i<len; i++){
arr3[i] = 0;
}
for(int i = 0 ; i < len ; i++ ){
sum=0;
if(arr1[i].equals("A") || arr1[i].equals("B")){
sum += arr2[i];
int j=0;
for(j = i+1; j < len && !arr1[j].equals("A") && !arr1[j].equals("B"); j++){
sum += arr2[j];
}
arr3[i] = sum;
i= j-1 ;
}
}
上面的代码现在用必要的值填充了数组,您可以通过对每个值使用Integer.toString()
方法将它们更改为字符串。