首页 > 解决方案 > 如何修复在java中计算子字符串中的出现次数

问题描述

我正在尝试使用substring获取MaleFemale的数量。但在这种情况下,我做了 2 个课程并使用扫描仪输入我想要的记录数。如何组合for 循环中的计数?我得到了MF的计数,但它没有得到我预期的输出。我试图删除 for 循环,但它需要在一个循环中,否则它可能是错误的。如果我再次放入 for 循环,它可以工作,但它被分开“它在输出框上”。如果我做错了请告诉我。A[i] = Output


public class Input {

    String info, gender;
    int resultf;
    int resultm;

    static Scanner in = new Scanner (System.in);

    public void inputted() {

        System.out.print("Enter a Gender: ");
        info = in.nextLine();

        gender = info.substring(0,1);
        }

    public void Output() {
        resultm = info.length() - info.replaceAll("M", "").length();
        resultf = info.length() - info.replaceAll("F", "").length();
        System.out.println("Male: "+resultm);
        System.out.println("Female: "+resultf);
        }

}

public class Output {

    static Input A[] = new Input [100];
    static Scanner in = new Scanner (System.in);

    public static void main (String args []) {

        int i, size;
        //Input
        System.out.print("Enter how many record: ");
        size = in.nextInt();

        for (i = 0; i < size; i++) {
            A[i] = new Input();
            A[i].inputted();
        }   

        System.out.println();
        //Print
        for (i = 0; i < size; i++) {
            System.out.println("Gender: "+A[i].gender);
        }

        System.out.println();
        //Output Section
        for (i = 0; i < size; i++) {
            A[i].Output();
        }
    }

}

输出:

Enter how many record: 2
Enter a Gender: M
Enter a Gender: F

Gender: M
Gender: F

Male: 1
Female: 0
Male: 0
Female: 1

预期输出:

Enter how many record: 2
Enter a Gender: M
Enter a Gender: F

Gender: M
Gender: F

Male: 1
Female: 1

标签: java

解决方案


在您的最后一个循环中,main您根据数组的大小调用了Input.Outputbase,并在该方法上打印了两个性别。改变Input.Output你打印数据的方式。尝试添加检查if以检查您的打印是男性还是女性。或者只是更改打印结果的逻辑。


推荐阅读