Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组有奇怪的问题_Java_Arrays - Fatal编程技术网

Java 数组有奇怪的问题

Java 数组有奇怪的问题,java,arrays,Java,Arrays,我目前正在创建一个程序并存储数据,我遇到了一个问题,它会将一条语句打印两次,并将其计算为数组中的两个(很难解释,所以我会显示它) 这就是代码 public static void GetData() { Scanner input = new Scanner(System.in); System.out.println("How many names do you want to enter?"); int num = input.nex

我目前正在创建一个程序并存储数据,我遇到了一个问题,它会将一条语句打印两次,并将其计算为数组中的两个(很难解释,所以我会显示它)

这就是代码

public static void GetData()
   {
     Scanner input = new Scanner(System.in);
     System.out.println("How many names do you want to enter?");
                int num = input.nextInt();
                int array[] = new int[num];
                for (int i = 0  ; i < array.length ; i++ ) 
                    {
                        String[] names = new String[num];


                        System.out.println("enter employee's name: ");

                        names[i] = input.nextLine();   
                    }
                for(int j = 0; j < array.length;j++)
                    {
                    double[] payrate = new double[num];
                    System.out.println("enter employee's payrate: ");

                     payrate[j] = input.nextDouble();
                     }

   }

}

马上两次,所以当用户声明let表示数组大小为4时,它将打印两次,并将其计算为两个点,因此现在它只计算3个数据并切换到下一个数组,老实说,我不确定是什么原因导致了这种情况,我试着调试它,但它没有告诉我,任何帮助都是值得的

第一个
名称[i]=input.nextLine()
将从包含您使用
input.nextInt()
读取的数字的行中读取
\n
,因此您将在那里得到一个空名称

您可以按如下方式读取
num

String strNum = input.nextLine();
int num = Integer.parseInt(strNum);

nextInt()。第一个
nextLine()。
String strNum = input.nextLine();
int num = Integer.parseInt(strNum);