我想构建一份涉及方法和数组的代码副本。我的目的是显示用户将输入的日期。
但是我收到错误:
需要数组,但找到字符串
这是我的代码的一部分:
public class Reservation{
public static Scanner input=new Scanner(System.in);
public static String[] date=new String[5];
public static int arraylength=5;
public static int index;
public static void main (String[] args){
start();
}
//this is the method where the date will be entered
public static void register(){
for(index=0;index<date.length;index++){
System.out.print("Enter the date of reservation(DD/MM/YY): ");
date[index]=input.nextLine();
}
}
// this is the method where date will be display
public static void display(String date, int index,int arraylength){
for(index=0;index<arraylength;index++){
System.out.println("The date ["+index+"]: "+date[index]);
}
}
}
您正在使用
date[index]
,但变量 date
在方法参数中被定义为 String date
。它不是一个数组,要定义数组类型,您应该使用String[] date
。
// this is the method where date will be display
public static void display(String[] date, int index)
{
System.out.println("The date ["+index+"]: "+date[index]);
}
错误在这里
public static void display(String date, int index,int arraylength)
^^^^^^^^^^^
当您在函数中传递了一个简单的字符串并且您尝试以 date[index] 的形式访问时
此外,局部变量和全局变量具有相同的名称,因此局部变量具有优先级。所以它将日期视为简单的字符串变量。
您需要使用定义为方法参数的静态字段,该字段存在冲突,因此请按如下方式更改它:
System.out.println("The date ["+index+"]: "+Reservation.date[index]);
^^^^^^^^^^^
或者将方法定义更改为:
public static void display(String aDate, int index,int arraylength)