判断航班日期,给定一个boolean数组,长度为7。从下标0位置到下标6的位置分别代表周日、周一至周六。数组中对应元素为ture代表今日有航班,为false代表今日无航班。
实现方法isHasAirline,参数为char c,代表想查询的日期,返回值为boolean类型,代表参数传入的查询日期那一天是否有航班。
要求参数既支持字符'0'到'6',又支持传入字符'日'到'六'的查询。

解决方案 »

  1.   

    if((c=='0' || c=='日') && array[0])
    {
         return true;
    }
    ...不会是这样吧
      

  2.   

    package test;import java.util.HashMap;
    import java.util.Map;public class AirLine {
    public boolean[] b = { true, true, true, false, false, true, true };
    Map<String, Integer> cday = null; public AirLine(){
    cday = new HashMap<String, Integer>();
    cday.put("天", 0);
    cday.put("一", 1);
    cday.put("二", 2);
    cday.put("三", 3);
    cday.put("四", 4);
    cday.put("五", 5);
    cday.put("六", 6);

    }

    public boolean isHasAirLine(char c) {
    if((int)c<54){
    return b[(int)c-48];
    }
    return b[cday.get(c+"")];
    }
    }
      

  3.   

    String validChars = "0123456日一二三四五六";
    int index = validChars.indexOf(c) % 6;
    if (index < 0) {
      throw new IllegalArgumentException(ex);
    }
    return b[index];
      

  4.   

    import java.util.Scanner;public class AirlineDemo {
    public static void main(String []args){

    //提示输入
    System.out.print("请输入星期(0~6)或者(日~六):");
    Scanner sc=new Scanner(System.in);
    String str=sc.nextLine();
    char c=str.charAt(0);
    boolean day=isHasAirline(c);

    //如果day返回值为真,则有航班,否则航班
    if (day){
    System.out.println("有航班");
    }else
    System.out.println("无航班");
    }

       //建立isHasAirline方法
    public static boolean isHasAirline(char c){
    int day=0;
    boolean[]dates={true,false,false,false,true,true,true};

    //实现分支判断
    switch(c){
    case'日':case'0':day=0;break;
    case'一':case'1':day=1;break;
    case'二':case'2':day=2;break;
    case'三':case'3':day=3;break;
    case'四':case'4':day=4;break;
    case'五':case'5':day=5;break;
    case'六':case'6':day=6;break;
    }
    return dates[day];
    }
    }