需要数组,但找到String

时间:2016-01-01 13:48:56

标签: java arrays methods

我在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]);
        }
    }
}

3 个答案:

答案 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)