验证数组

时间:2018-04-14 19:11:51

标签: java arrays validation

嘿伙计们,我正在为学校做一个项目并且遇到一些麻烦,我有一个变量" reservationNumber"并且我试图检查用户输入的数字是否在数组中,如果不是,则返回一个字符串,表示找不到该数字。它工作正常并在有有效输入时显示正确的信息,但是当检测到无效输入时,它会给出null.pointer.exception错误。我试着编写它,这样如果没有检测到数字,私有方法返回-1,那么当我调用tickerInformation方法时,如果那个变量' ticket'返回-1然后它返回"无效的预订号"。这是引发错误的地方,只有在我输入无效号码时才会发生,请帮忙。

public void ticketInformation(String reservationNumber)
{
      int ticket = searchArray(reservationNumber); 

      if (ticket == -1)
      {
         System.out.println("The reservation number entered was n0t found");
      }
      else
      {
        System.out.print("\n" + ticketSale[ticket].toString());
      }
}

private int searchArray(String reservationNumber)
{
    for (int i = 0; i < ticketSale.length; i++)
    {
        if (ticketSale[i].getReservationNumber().equals(reservationNumber))
        {
            return i;
        }
    }
    return -1;
}

4 个答案:

答案 0 :(得分:0)

ticketSale [i] .getReservationNumber()。equals(reservationNumber)有问题。分享数组&#34; ticketSale&#34;的声明和init。如果ticketSale数组用于抽象数据类型,那么为什么使用String调用equal?

答案 1 :(得分:0)

您没有发布整个代码,但我认为当您输入无效号码作为预订号码时,它不会分配给相关对象的实例变量。所以getReservationNumber()可能会返回null。

答案 2 :(得分:0)

添加空检查

val df1 = Seq(
  (1, "book1", 1), (2, "book2", 2), (3, "book3", 3), (4, "book4", 4)
).toDF("primary_key", "book", "number")

val df2 = Seq(
  (1, "book1", 1), (2, "book8", 8), (3, "book3", 7), (5, "book5", 5)
).toDF("primary_key", "book", "number")

最诚挚的问候,

勒凯什

答案 3 :(得分:0)

添加regex以验证您的输入是有效号码"\\d+"

   public void ticketInformation(String reservationNumber)
    {
        String regex = "\\d+";
        if(!reservationNumber.matches(regex))
        {
            System.out.println("The reservation number entered was n0t found");
        }

        int ticket = searchArray(reservationNumber);

        if(ticket == -1)
        {
            System.out.println("The reservation number entered was n0t found");
        }
        else
        {
            System.out.print("\n" + ticketSale[ticket].toString());
        }
    }

您可能希望验证searchArray,特别是如果它未在ticketInformation()中相互依赖使用。