我想创建一个程序,该程序从用户读取int值,直到引入了不是int的值为止。然后我想得到多少个数字相等。 我尝试了这段代码
import java.util.Scanner;
public class Equals {
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
Scanner input = keyboard;
int index = 0;
int equals = 0;
while(keyboard.hasNextInt()){
keyboard.nextInt();
index++;
}
int[] equals = new int[index];
for(int i = 0 ; i < index ; i++){
int aux = input.nextInt();
values[i] = aux;
for(int b = 0 ; b < index ; b++){
if(aux == values[b]){
equals++;
}
}
}
System.out.print(equals);
}
}
此代码不起作用,因为键盘扫描器仅获取用户引入的值的数量,而我将其用于数组大小,但我无法获取每个要比较的值。我不能使用数组列表。
答案 0 :(得分:0)
如果不能使用数组列表,可以使用什么?可以用吗?
int[] values = new int[0];
while(keyboard.hasNextInt()){
values = Arrays.copyOf(values, values.length + 1);
values[values.length-1] = keyboard.nextInt();
index++;
}
如果不允许您执行arrays类,则可以像这样手动调整数组的大小,并使用此函数代替Arrays.copyOf:
private int[] resize(int[]s, int capacity) {
int[] copy = new int[capacity];
for (int i = 0; i < s.length; i++) {
copy[i] = s[i];
s = copy;
}
return copy;
}