通过以下代码,我查看所有字母组,从同一名称开始,到一个阵列,再到第二列,将所有字母组加在一起,我要保留字母组相关数字的总和。
例如:
array_1 = { {"bat","1"},
{"rat","2"},
{"ball","3"},
{"run","4"},
{"lizard","5"}
}
into array_2 = { {"b","4"},
{"r","6"},
{"l",5}
}
以下代码给出了半正确结果。 当它到达 b
开始的下一个字母, 并将它作为单独的值存储。 问题在于行号42, 我标记了这一点 。 我应如何强制检查, 一旦它添加了字母数, 它就不会添加字母数 。
package keylogger;
import java.util.Arrays;
public class ArrayTester {
private static int finalLength=0;
private static String firstAlphabet[][];
private String data[][] = {
{"Nokia" , "7"},
{"Blackberry" , "1"},
{"Nimbus","10"},
{"Apple","19"},
{"Ami","21"},
{"Bug","35"},
{"Native","200"},
{"zebra","100"},
{"Nine","9"}
};
public void calculator() {
try {
// traverse the whole array
firstAlphabet = new String[data.length][data.length]; // set the length of firstAlphabet array
for(int i=0;i<data.length;i++) {
firstAlphabet[i][0] = data[i][0].substring( 0, 1); // get the first alphabet
firstAlphabet[i][1] = data[i][1];
int k = i+1;
int v = k;
int t=0;
for(int j=0;j<data.length-v;j++) {
System.out.println("Inner for loop" + j);
String s = data[k][0];
// line 42:
if(firstAlphabet[i][0].compareToIgnoreCase(s.substring(0, 1))==0) {
System.out.println("If statement");
firstAlphabet[i][0] = s.substring(0, 1);
Integer z = Integer.parseInt(data[k][1]) + Integer.parseInt(firstAlphabet[i][1]);
firstAlphabet[i][1] = z.toString();
}
k++;
}
}
}catch(Exception exc) {
exc.printStackTrace();
}
}
public static void main(String args[]) {
ArrayTester o = new ArrayTester();
o.calculator();
for(String s[] : firstAlphabet) {
for(String x : s) {
System.out.println(x);
}
}
}
}
OUTPUT
Inner for loop0
Inner for loop1
If statement
Inner for loop2
Inner for loop3
Inner for loop4
Inner for loop5
If statement
Inner for loop6
Inner for loop7
If statement
Inner for loop0
Inner for loop1
Inner for loop2
Inner for loop3
If statement
Inner for loop4
Inner for loop5
Inner for loop6
Inner for loop0
Inner for loop1
Inner for loop2
Inner for loop3
If statement
Inner for loop4
Inner for loop5
If statement
Inner for loop0
If statement
Inner for loop1
Inner for loop2
Inner for loop3
Inner for loop4
Inner for loop0
Inner for loop1
Inner for loop2
Inner for loop3
Inner for loop0
Inner for loop1
Inner for loop2
Inner for loop0
Inner for loop1
If statement
Inner for loop0
N
226
null
null
null
null
null
null
null
B
36
null
null
null
null
null
null
null
N
219
null
null
null
null
null
null
null
A
40
null
null
null
null
null
null
null
A
21
null
null
null
null
null
null
null
B
35
null
null
null
null
null
null
null
N
209
null
null
null
null
null
null
null
z
100
null
null
null
null
null
null
null
N
9
null
null
null
null
null
null
null
如果我们注意到与字母表相关的总和是正确的。 唯一的问题是重复。 例如 N=219, 即200+19