编程新手,所以仍然掌握基本方面,但到目前为止能够写出来:
public static void main(String[] args) throws FileNotFoundException {
Scanner sc = new Scanner(new File("Path://pay.txt"));
String name;
int price;
int quantity;
int total;
while(sc.hasNext()){
name = sc.next();
price = sc.nextInt();
quantity = sc.nextInt();
total = price * quantity;
System.out.println(name + " : " + total);
}
sc.close();
}
输出:
Emma : $16
Sofia : $8
Olivia : $70
Emma : $9
Emma : $9
Emma : $4
Emma : $120
Sofia : $33
Emma : $78
Emma : $40
Sofia : $32
Olivia : $8
Sofia : $6
Olivia : $36
Emma : $9
Emma : $45
Emma : $54
Emma : $12
Emma : $78
Emma : $36
Olivia : $4
Emma : $64
Sofia : $42
BUILD SUCCESSFUL (total time: 1 second)
而不是我的输出看起来如何,它显示每条线的个人总销售额,我想输出每个人的总销售额....
Income
Emma: $xx
Sofia: $yy
Olivia: $zz
有谁可以帮助我并引导我朝着正确的方向前进?我觉得我很接近,但不是百分百肯定。
感谢您花时间浏览并阅读此帖。
答案 0 :(得分:0)
为名称创建一个ArrayList,为总计创建另一个ArrayList。 当您从用户获得新输入时,最初两个arraylists都为空,您将名称添加到arraylist并将总数添加到arraylist。 然而,在每次输入输入之后,检查arraylist中是否存在名称,如果它没有添加,如果是,则获取索引,并在总arraylist中使用该索引来检索编号并为其添加新值。然后在输入所有值后,循环遍历arraylists并打印它们。
Scanner sc = new Scanner(new File("Path://pay.txt"));
ArrayList<String> names = new ArrayList<String>();
ArrayList<Integer> total = new ArrayList<Integer>();
String name;
int price;
int quantity;
while(sc.hasNext()){
name = sc.next();
price = sc.nextInt();
quantity = sc.nextInt();
if(names.contains(name)){
int index = names.indexOf(name);
int totalTemp = total.get(index);
totalTemp += price * quantity;
total.remove(index);
total.add(totalTemp,index);
}else{
names.add(name);
total.add(price*quantity);
}
}
sc.close();
for(int i=0;i<names.size();i++){
System.out.println(names.get(i)+": "+total.get(i));