计算输入特定数字的次数的数组 - Java

时间:2014-04-13 02:15:27

标签: java arrays

我正在自学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方法执行所有操作,这是最好的面向对象方法。

非常感谢您的意见。

感谢。

2 个答案:

答案 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四次。