我无法停止接受用户的输入。一个无限循环正在创建,我不确定我的条件应该是什么,或者整个程序是否出错。
我试图创建一个程序,用户在第一行输入整数,用空格分隔,并在下一行给出他/她想要计数的整数。
import java.util.Scanner;
import java.util.ArrayList;
public class Pracitce {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ArrayList<Integer> num = new ArrayList<Integer>();
int count = 0;
int n = scan.nextInt();
while(n != '\n'){
num.add(n);
n = scan.nextInt();
}
Integer second = scan.nextInt();
int arr[] = new int[num.size()];
for(int i = 0; i<num.size();i++){
arr[i] = num.get(i);
}
for(int i: arr){
if(second == i){
count++;
}
}
System.out.println(count);
}
}
预期输出:1 2 3 3 3 3 3 4
1条答案
按热度按时间vngu2lb81#
nextInt()
没有给出是否到达下一行的指示。你可以用Scanner#nextLine
读取一行,然后用split
在一个空格上读取,最后把每个部分解析成一个int。例如:
有一个内置的方法
Collections.frequency
,可以计算值的出现次数,因此可以简化。