【问题标题】:Cannot invoke equals(String) on the primitive type int无法在原始类型 int 上调用 equals(String)
【发布时间】:2014-05-19 03:45:10
【问题描述】:

我有一个包含航班号的文本文件,我的目标是让这个方法搜索该文本文件,并打印出所有带有“航班号”的行。

public static void print_flight(int rcount,int[]reservation_code,int[]fl_number,String[]last_name,String[]first_name,String[]seat_type,double[]seat_cost)
{
     int i, total=0;

     String search_flight = "";
     String output = "Enter the Flight Number you are searching for";
     search_flight = JOptionPane.showInputDialog(null,
                                               output, " ",
                                               JOptionPane.QUESTION_MESSAGE);

     for (i = 0; i <=rcount; ++i) {
        //CHECK flight number

          if(fl_number[i].equals(search_flight))//ERROR IS HERE
             {
                 total+=fl_number[i]; //not sure if that is right
                 System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
             }

     }
}

【问题讨论】:

  • 错误不言自明

标签: java string parsing methods integer


【解决方案1】:

通常不需要对航班号进行算术运算,所以应该是字符串数组。

【讨论】:

    【解决方案2】:

    使用Integer.parseInt将其转换为int值,然后使用==比较两个int值

              int flight_number = Integer.parseInt(search_flight); //convert to int
              if(fl_number[i] == flight_number)//compare two ints
    

    【讨论】:

      【解决方案3】:

      fl_number 是一个 int 数组 和 search_flight 是一个字符串,您应该将其解析为 int 以使用 fl_number

      所以,fl_number[i].equals(search_flight)

      -> fl_number[i] == Integer.Parse(search_flight)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-11
        • 2018-11-03
        • 2012-04-15
        • 1970-01-01
        • 2014-04-24
        • 2019-01-12
        相关资源
        最近更新 更多