我正在尝试查看带有金额的名称列表。
一个数组包含此人的姓名,另一个数组包含此人给的金额,即 john, 55 sally 40 john 33 sarah 55。
我的目标是汇总相似的姓名并打印出此人的姓名和给出的总金额。
约翰给了两次,所以他的总数应该是 88。但我得到了正确的结果,但我的程序打印了两次名称。所以 john 88 打印了两次......我知道这很可能是因为我把它放在第一个 for 循环中,它迭代了数组的整个长度。
但我不确定如何解决这个问题?
import java.util.*;
public class chapterfive {
public static void main (String[]args) {
Scanner in = new Scanner (System.in);
String[]names = new String[4];
int[] scores = new int[4];
for (int i = 0; i<names.length; i++) {
names[i] = in.next();
scores[i] = in.nextInt();
}
int amount = 0;
String firstname = "";
for (int i = 0; i < names.length; i++) {
for (int j=0; j < names.length; j++) {
if (names[j].equals(names[i]))
amount += scores[j];
}
System.out.println(names[i] + " " + amount);
amount = 0;
}
}
}