Java帮助 - 输出正确的格式

时间:2017-06-18 20:54:48

标签: java

编程新手,所以仍然掌握基本方面,但到目前为止能够写出来:

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

有谁可以帮助我并引导我朝着正确的方向前进?我觉得我很接近,但不是百分百肯定。

感谢您花时间浏览并阅读此帖。

1 个答案:

答案 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));