Java 如何检查数组中的键号是否重复?

Java 如何检查数组中的键号是否重复?,java,arrays,Java,Arrays,如何从键(b)中获取重复数我的程序是这样的一个用户输入166456,键=6,那么输出必须像6,在数组中重复3次请同时告诉我,如果没有数组,是否可以执行此操作 我甚至得到了错误,因为int不能是to int[] int []a,i,j,count=0,b=0,n; Scanner sc=new Scanner(System.in); n=sc.nextInt(System.in); int []a=new int[n]; for(i=0;i<n;++i

如何从键(b)中获取重复数我的程序是这样的一个用户输入166456,键=6,那么输出必须像6,在数组中重复3次请同时告诉我,如果没有数组,是否可以执行此操作
我甚至得到了错误,因为int不能是to int[]

    int []a,i,j,count=0,b=0,n;
    Scanner sc=new Scanner(System.in);
    n=sc.nextInt(System.in);
    int []a=new int[n];
    for(i=0;i<n;++i)
    {
        a[i]=sc.nextInt();

    }
    System.out.println("Which nuber would you like to find:");
    b=sc.nextInt();
    for(j=0;j<n;++j)
    {
        if(a[i]==b)
        {
            ++count;
        }
        else
        {
            System.out.println("Not found");
        }
    }
    System.out.println("No of time "+b+" is repeated "+count);
int[]a,i,j,count=0,b=0,n;
扫描仪sc=新的扫描仪(System.in);
n=sc.nextInt(系统输入);
int[]a=新的int[n];

对于(i=0;i您正在做一些错误的变量声明。如果将数组声明为<代码> INT[],将将所有变量视为数组。这就是为什么您得到错误。要么您可以声明为<代码> int [] ]/COD>或在另一行上声明其他变量。< /P> 请参考以下代码

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        int []a;
        int b=0, count=0;
        int i, j, n;
        Scanner sc=new Scanner(System.in);
        n=sc.nextInt();
        a=new int[n];
        for(i = 0; i < n; ++i)
        {
            a[i]=sc.nextInt();

        }
        System.out.println("Which nuber would you like to find:");
        b=sc.nextInt();
        for(j=0;j<n;++j)
        {
            if(a[j]==b)
            {
                ++count;
            }
            else
            {
                System.out.println("Not found");
            }
        }
        System.out.println("No of time "+b+" is repeated "+count);

    }

}

你做了一些错误的变量声明。如果你声明一个数组为“代码> INT[]”< /代码>,那么它将把所有变量看作一个数组。这就是你得到错误的原因。要么你可以声明为<代码> int [] ]/Cord>,要么在另一行上声明其他变量。< /P> 请参考以下代码

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        int []a;
        int b=0, count=0;
        int i, j, n;
        Scanner sc=new Scanner(System.in);
        n=sc.nextInt();
        a=new int[n];
        for(i = 0; i < n; ++i)
        {
            a[i]=sc.nextInt();

        }
        System.out.println("Which nuber would you like to find:");
        b=sc.nextInt();
        for(j=0;j<n;++j)
        {
            if(a[j]==b)
            {
                ++count;
            }
            else
            {
                System.out.println("Not found");
            }
        }
        System.out.println("No of time "+b+" is repeated "+count);

    }

}

据我所知,您需要帮助从用户输入中找出数字的总频率。(假设数字仅为0到9。如果我的假设错误,请纠正我)

所以,我们可以使用整数10的整数数组来存储每个数字的频率。例如,考虑总共6个数字的输入“166456”。我们的整数数组的值将是(从索引0到9)0100113000。这样,我们可以直接返回要搜索的数字的索引,在这个例子中数组[6 ]的返回值是3。

    int[] num=new int[10]; // storing each digit's frequency
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt(); // count for total digits
    for(int i=0;i<n;i++){
        int index = sc.nextInt();
        num[index]++;
    }
    System.out.println("Which number you would like to find out?");
    int b = sc.nextInt();
    if(num[b]!=0)
        System.out.println("No. of time "+b+" is repeated "+num[b]);
    else
        System.out.println("Not found");
int[]num=new int[10];//存储每个数字的频率
扫描仪sc=新的扫描仪(System.in);
int n=sc.nextInt();//总位数的计数

对于(int i=0;i,据我所知,您需要帮助从用户输入中找出数字的总频率。(假设数字仅为0到9。如果我在这个假设上有错误,请纠正我)

所以,我们可以使用整数10的整数数组来存储每个数字的频率。例如,考虑总共6个数字的输入“166456”。我们的整数数组的值将是(从索引0到9)0100113000。这样,我们可以直接返回要搜索的数字的索引,在这个例子中数组[6 ]的返回值是3。

    int[] num=new int[10]; // storing each digit's frequency
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt(); // count for total digits
    for(int i=0;i<n;i++){
        int index = sc.nextInt();
        num[index]++;
    }
    System.out.println("Which number you would like to find out?");
    int b = sc.nextInt();
    if(num[b]!=0)
        System.out.println("No. of time "+b+" is repeated "+num[b]);
    else
        System.out.println("Not found");
int[]num=new int[10];//存储每个数字的频率
扫描仪sc=新的扫描仪(System.in);
int n=sc.nextInt();//总位数的计数

对于(int i=0;我不会得到重复的number@Ragnarok我可以看到输出。我已经用输出更新了我的答案。请检查。为什么它显示为未找到,因为数组中存在6???@Ragnarok,这是因为您在每次迭代中都打印值。如果值为6,则它将增加计数,否则它将不打印已找到。如果您不想显示,请删除else块。但我仍无法获得重复显示的计数number@Ragnarok我能够看到输出。我已经用输出更新了我的答案。请检查。为什么它显示为未找到,因为数组中存在6???@Ragnarok,这是因为您正在每次迭代中打印值。如果值是6如果您不想显示,请删除else块。它给我错误,它不检索数字,想要任何限制,甚至我不想将其存储在数组中只要使用keyWell查找重复元素的数量,我只运行它并显示输出。我不确定您为什么会得到一个错误。我们也可以在这里使用HashMap。这也可以帮助您。您好,可以这样做吗?如果用户输入直接数字,而不是选择上面的存储,那么数组将存储数字。如果用户直接输入16648,键值为6,则必须根据您的要求,直接获得重复coutnSo的2倍f你想把16648作为一个整数,并且通过把键值设为6,你想要输出为2,然后你可以把数字转换成字符串,然后找到整个字符串中的关键数字的出现,或者你可以用分号和模分提取每一个数字。mit或甚至我都不想将其存储在数组中只要使用keyWell查找重复元素的数量,我只是运行它并显示输出。我不知道为什么会出现错误。我们也可以在这里使用HashMap。这也可以帮助您。嗨,可以这样做吗?如果用户输入direct number,而不是像我一样选择存储,那么就可以生成一个数组数组中的n是如果用户直接输入16648,而键值为6,它必须直接得到2次作为它的重复cOtnSO,根据你的要求,如果你想把16648当作一个整数,并且通过提供关键字值为6,你需要输出为2,那么你可以把数字转换成字符串和t。然后在整个字符串中查找关键数字的出现次数,或者您可以通过除以和模10来提取每个数字。