迭代字符串数组,需要数组,但出现字符串发现错误

问题描述 投票:0回答:3

我想构建一份涉及方法和数组的代码副本。我的目的是显示用户将输入的日期。

但是我收到错误:

需要数组,但找到字符串

这是我的代码的一部分:

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]);
        }
    }
}
java arrays for-loop methods
3个回答
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]);
}

3
投票

错误在这里

 public static void display(String date, int index,int arraylength)
                            ^^^^^^^^^^^

当您在函数中传递了一个简单的字符串并且您尝试以 date[index] 的形式访问时

此外,局部变量和全局变量具有相同的名称,因此局部变量具有优先级。所以它将日期视为简单的字符串变量。


0
投票

您需要使用定义为方法参数的静态字段,该字段存在冲突,因此请按如下方式更改它:

System.out.println("The date ["+index+"]: "+Reservation.date[index]);
                                            ^^^^^^^^^^^

或者将方法定义更改为:

public static void display(String aDate, int index,int arraylength)
© www.soinside.com 2019 - 2024. All rights reserved.