正确打印Java的计数方法

正确打印Java的计数方法,java,count,format,names,Java,Count,Format,Names,因此,我有一个程序,可以打开一个文件“input.txt”,其中包含一个名称列表。我有多种方法来组织名称、相应地大写并显示它们。我遇到的问题是程序的输出方面。当我使用countOccurrence方法(我将在下面展示)时,它会正确计算每个名字在列表中出现的次数,无论是名字还是姓氏。问题是它没有按我希望的方式显示计数。我将有我得到的输出和我想要的输出显示在下面,如果有人可以帮助,将不胜感激 public class Names { public static void display(A

因此,我有一个程序,可以打开一个文件“input.txt”,其中包含一个名称列表。我有多种方法来组织名称、相应地大写并显示它们。我遇到的问题是程序的输出方面。当我使用countOccurrence方法(我将在下面展示)时,它会正确计算每个名字在列表中出现的次数,无论是名字还是姓氏。问题是它没有按我希望的方式显示计数。我将有我得到的输出和我想要的输出显示在下面,如果有人可以帮助,将不胜感激

    public class Names {

public static void display(ArrayList<String> names) {
    for (int i = 0; i < names.size(); i = i + 1) {
        System.out.println(names.get(i));
    }
}

public static int find(String s, ArrayList<String> a) {
    for (int i = 0; i < a.size(); i = i + 1) {
        String str = a.get(i);
        if (str.equals(s)) {
            return i;
        }
    }
    return -1;

}

public static void capitalize(ArrayList<String> names) {
    for (int i = 0; i < names.size(); i = i + 1) {
        String name = names.get(i);
        if (!name.isEmpty()) {
            String firstLetter = "" + name.charAt(0);
            names.set(i, firstLetter.toUpperCase() + name.substring(1).toLowerCase());

        }
    }
}

public static void sort(ArrayList<String> names) {
    for (int i = 0; i < names.size() - 1; i = i + 1) {
        int Min = i;
        for (int j = i + 1; j < names.size(); j = j + 1) {
            if (names.get(j).compareTo(names.get(Min)) < 0) {
                Min = j;
            }
        }
        String tmp = names.get(i);
        names.set(i, names.get(Min));
        names.set(Min, tmp);

    }

}

public static void getNames(ArrayList<String> fn, ArrayList<String> ln) throws IOException {
    Scanner kb = new Scanner(System.in);
    System.out.println("What is the input flie?");
    String names = kb.next();
    File inpFile = new File(names);
    Scanner in = new Scanner(inpFile);

    while (in.hasNext()) {
        String firstName = in.next();
        String lastName = in.next();
        fn.add(firstName);
        ln.add(lastName);

    }

}

 private static int countOccurence(String name,ArrayList<String> names){
        int count = 0;
        for(int i =0; i < names.size(); i++){
            if(name.equalsIgnoreCase(names.get(i))){
                count++;
            }
        }
        return count;
    }

public static void main(String[] args) throws IOException {

    ArrayList<String> first = new ArrayList<>();
    ArrayList<String> last = new ArrayList<>();
    getNames(first, last);
    capitalize(first);
    capitalize(last);

    ArrayList<String> allNames = new ArrayList<>();
    for (int i = 0; i < first.size(); i++) {
        allNames.add(last.get(i) + ", " + first.get(i));
    }
    System.out.println("*******All Names******");

    sort(allNames);
    display(allNames);

    System.out.println("\n*****First Name Count***");

    sort(first);

    for(int i =0; i < first.size(); i++){
            int count = countOccurence(first.get(i), first);
            System.out.println(first.get(i) + "        " + count + " times.");
        }


    System.out.println("\n****Last Name Count****");

    sort(last);

    for(int i =0; i < last.size(); i++){
            int count = countOccurence(last.get(i), last);
            System.out.println(last.get(i) + "        " + count + " times.");
        }


    System.out.println("\n****All Names Count****");

    sort(allNames);

    for(int i =0; i < last.size(); i++){
            int count = countOccurence(allNames.get(i), allNames);
            System.out.println(allNames.get(i) + "        " + count);
        }



    *****First Name Count***
    Adriana        4 times.
    Adriana        4 times.
    Adriana        4 times.
    Adriana        4 times.
    Colette        4 times.
    Colette        4 times.
    Colette        4 times.
    Colette        4 times.
    Emmanuel       1 times.
    Gerri          1 times.
    Gretta         1 times.
    Kirsten        2 times.
    Kirsten        2 times.
    Marcia         2 times.
    Marcia         2 times.
    Neva           1 times.
    Shawanda        1 times.
    Tijuana        1 times.

    ****Last Name Count****
    Beres        2 times.
    Beres        2 times.
    Beumer       1 times.
    Hutt         2 times.
    Hutt         2 times.
    Jones        2 times.
    Jones        2 times.
    Koenig       1 times.
    Means        1 times.
    Montilla     4 times.
    Montilla     4 times.
    Montilla     4 times.
    Montilla     4 times.
    Mossman      1 times.
    Sapienza     2 times.
    Sapienza     2 times.
    Shover       1 times.
    Stanfill     1 times.

    ****All Names Count****
    Beres, Kirsten        2
    Beres, Kirsten        2
    Beumer, Gretta        1
    Hutt, Colette         1
    Hutt, Shawanda        1
    Jones, Colette        1
    Jones, Marcia         1
    Koenig, Gerri         1
   Means, Tijuana         1
   Montilla, Adriana      4
   Montilla, Adriana      4
   Montilla, Adriana      4
   Montilla, Adriana      4
   Mossman, Emmanuel      1
  Sapienza, Colette       2
  Sapienza, Colette       2
  Shover, Neva            1
  Stanfill, Marcia        1
公共类名{
公共静态无效显示(ArrayList名称){
对于(int i=0;i
*******名字很重要*******

阿德里亚娜4

科莱特4

伊曼纽尔1

Gerri 1

格雷塔1

克尔斯滕2号

玛西亚2号

涅瓦河1号

沙万达1号

蒂华纳1号

*******姓氏计算*******

贝雷斯2

贝默尔1

赫特2号

琼斯2

柯尼格1号

意思是1

蒙蒂利亚4号

莫斯曼1

萨皮恩萨2号

铲运机1

Stanfill 1

*******所有名字都算数*******

贝里斯,克尔斯滕2号

贝默格雷塔1

赫特,科莱特1号

赫特,沙万达1号

琼斯,科莱特1号

琼斯,玛西娅1号

柯尼格,杰里1

意思是提华纳1号

蒙蒂拉,阿德里亚娜4

莫斯曼,伊曼纽尔1号

ArrayList<String> tmp = new ArrayList<String>(); for(int i =0; i < first.size(); i++){ if(!tmp.contains(first.get(i))) { int count = countOccurence(first.get(i), first); System.out.println(first.get(i) + " " + count + " times."); tmp.add(first.get(i)); } }