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