java - 如何修复在java中计算子字符串中的出现次数
问题描述
我正在尝试使用substring获取Male和Female的数量。但在这种情况下,我做了 2 个课程并使用扫描仪输入我想要的记录数。如何组合for 循环中的计数?我得到了M和F的计数,但它没有得到我预期的输出。我试图删除 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
解决方案
在您的最后一个循环中,main
您根据数组的大小调用了Input.Output
base,并在该方法上打印了两个性别。改变Input.Output
你打印数据的方式。尝试添加检查if
以检查您的打印是男性还是女性。或者只是更改打印结果的逻辑。
推荐阅读
- jquery - 范围控制输入事件未触发
- docker - docker run hello-world 失败,stderr:权限被拒绝
- powershell - 在powershell中传递感叹号,括号作为可执行参数的一部分
- python - 通过生成器从 fastq 获取数据
- python - 检查两个“时间范围”是否相互重叠
- android - jitpack build failed with info: No build artifacts found
- python - 通过 TCP 套接字发送的摄像头馈送有时会卡住
- php - multiphp php.ini 没有效果
- .net - ASPNETCORE_ENVIRONMENT 设置为“开发”以某种方式限制 API 调用
- php - SoapFault:看起来我们没有 XML 文档 Magento 和 laravel