在飞机java中分配座位

时间:2016-12-06 00:22:40

标签: java

我收到seatRow = scan.next()seatLetter = scan.next()错误,你怎么能转换它们。并且if(airplaneSeats == 'X')它表示它是uncompatable操作数类型

 public static void main(String[]args)
    {
        String airplaneSeatsString = ("1 A B C D 2 A B C D 3 A B C D 4 A B C D 5 A B C D 6 A B C D 7 A B C D");
        String requested = " ";
        char[] airplaneSeats = airplaneSeatsString.toCharArray();
        Scanner scan = new Scanner(System.in);
        boolean seatsRemain = true;
        char seatRow = 0;
        char seatLetter = ' ';

        while (seatsRemain)
        {
            if(seatsRemain == true)
            {
                System.out.print("Input seat row/letter: ");
                seatRow = scan.next;
                seatLetter = scan.next;
                for(int i = 0; i < airplaneSeats.length; i++) {
                    if (airplaneSeats[i] == seatRow)
                        for (int j = 0; j < 4; j++) {
                            if (airplaneSeats[i+j] == 'X')
                            {
                                System.out.println(airplaneSeats);
                            }
                                //print seat taken
                            if (airplaneSeats[i+j] == seatLetter) {
                                airplaneSeats[i+j] = 'X';
                            }
                            if(airplaneSeats == 'X')
                            {
                                seatsRemain = false;
                            }

                        }
                }
        }
        if(seatsRemain == false){break;}
            {
                System.out.print("\nEnter your Seat: ");
                String seat = scan.next();
                requested += seat;
            }
            System.out.println("The Plane is full");
        }

    }
}

1 个答案:

答案 0 :(得分:1)

您正在将整个数组airplaneSeats'X'进行比较,而不是需要与数组的单个字符进行比较,例如if(airplaneSeats[i] == 'X')

此外,从scan.next读取字符时出现语法错误Scanner,需要修复。您需要阅读next().charAt(0)中的字符Scanner,如下所示:

seatRow = scan.next().charAt(0);
seatLetter = scan.next().charAt(0);