我在java中完全是新手。我只想构建一个涉及方法和数组的代码副本。我的目的是显示一个由用户输入的日期。但是需要数组,但是找到了字符串发现错误。这是我的一些代码:
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]);
}
}
}
答案 0 :(得分:3)
您正在使用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]);
}
答案 1 :(得分:3)
错误就在这里
public static void display(String date, int index,int arraylength)
^^^^^^^^^^^
由于您在函数中传递了一个简单的字符串,并且您尝试访问日期[index]
此外,您的本地和全局变量具有相同的名称,因此Local Variable获得优先级。所以它将日期视为简单的字符串变量。
答案 2 :(得分:0)
您需要使用您定义为冲突的方法参数的静态字段,因此请按以下方式进行更改:
System.out.println("The date ["+index+"]: "+Reservation.date[index]);
^^^^^^^^^^^
或将方法定义更改为:
public static void display(String aDate, int index,int arraylength)