我正在自学java,并且已经拿起一本书进行了一些练习。其中一个练习要求我构建一个控制台应用程序,它将键盘中的数字读入int []类型的数组中。数组中可以有50个或更少的条目。
所以,让我们说某人进入2,3,4,2,2,3
输出应该是2列,左边是数字,右边是次数(如下面的数字所示)
2 3 3 2 4 1
我不确定最好的解决方法,因为我对java很新。
到目前为止我所拥有的是:
编辑:从这里的一些人的建议中得到一些工作,这就是我现在所拥有的。package arrayassignment;
import java.util.Scanner;
public class Entry {
private Scanner scn = new Scanner(System.in);
private int[] count = new int[51];
private int input = scn.nextInt();
private void setInput(int input){
this.input = input;
}
private int getInput(){
return input;
}
public void numberEntry(){
System.out.println("Please enter numbers between 0 and 50:");
for (int x=0; x<10; x++)
if (input == x)
count[x]++;
}
}
我打算从main方法类调用这些方法,而不是按照本书的方法从main方法执行所有操作,这是最好的面向对象方法。
非常感谢您的意见。
感谢。
答案 0 :(得分:1)
Scanner scn = new Scanner(System.in);
int input;
int[] count = new int[10];
input = scn.nextInt();
for (int x=0; x<10; x++)
if (input == x)
count[x]++;
有几种方法可以实现这一点。上面的代码将检查用户键入的号码,并相应地将1添加到其各自的计数器记录中。这可能不是最有效的方法,但这是您可以使用的一种方式。
(由于你的问题没有指明输入是否带有逗号或单个整数的字符串,我假设你的输入是个别整数。)
答案 1 :(得分:0)
for (int i = 0; 1 < digits.length; i++);
分号会在你的for循环中出现问题。 如果数组应设置为50个元素,为什么数字设置为51?
在数组中搜索特定元素的最简单方法可能是使用顺序搜索算法。您可能想要做的是创建一个接受int数组并将值作为参数的方法,搜索数组中的每个元素并返回一个int值,该值是找到值的次数。
public static int sequentialSearch(int[] digits, int value){
int counter = 0;
for(int index = 0; index< digits.length; index++){
if(digits[index] == value){
counter++;
}
}
return counter;
}
然后在您班级的主要方法中添加此行以查看以下示例工作:
int[] digits = {1,3,5,6,4,3,3,3,10};
System.out.println(sequentialSearch(digits, 3));
在上面的示例中,控制台将输出4,因为在数组数组中找到值4四次。