Ice_VII 2022-12-25 08:09 采纳率: 100%
浏览 20
已结题

如何修改方法与返回值,使得与调用时一致

问题:选票系统方法中的 char 和 调用时String 矛盾,问一下怎么改。

首先是getSeat方法:

 public static char[][] getSeat () {
            Scanner sc1 = new Scanner(System.in);
            Scanner sc2 = new Scanner(System.in);

            char[][] A = {
                    {'A', 'B', 'C', 'D'},
                    {'A', 'B', 'C', 'D'},
                    {'A', 'B', 'C', 'D'},
                    {'A', 'B', 'C', 'D'},
                    {'A', 'B', 'C', 'D'},
                    {'A', 'B', 'C', 'D'},
                    {'A', 'B', 'C', 'D'},
            };

            int row = sc1.nextInt();
            char col = sc2.next().charAt(0);
            ;
            int column;
            column = (int) col - 97;

            if (row >= NUMROWS && column >= NUMSEATS) {
                System.out.println("Invalid seat, please re-enter");
            } else if (A[row][column] == 'X') {
                System.out.println("Sorry, " + row + col + " is already taken. ");

            } else {
                A[row][column] = 'X';
                System.out.println("OK, you've chosen " + row + col);
            }

           return A ;
        } 

然后是main方法里调用getSeat方法的部分

            do {
                // Show seat diagram
                printSeats(planeSeats);

                // Get seat choice
                
                String seatChoice = getSeat();          <-----------这是报错的那一行

                //parse the seatChoice string and book the seat
                seatsTaken = parseAndBook(seatChoice, planeSeats, seatsTaken);

                // If there are seats left, see if we should keep going
                System.out.println( "You have booked " + seatsTaken + " seats." );
                if (seatsTaken < totalSeats)
                {
                    System.out.println("Choose another seat? (y/n) ");
                    String yesNo = stdInput.next();
                    keepGoing = yesNo.charAt(0);
                }
                else
                {
                    System.out.println("Plane is now full!" );
                    break;    //break out of the loop if all seats have been taken
                }
            } while (keepGoing == 'y' || keepGoing == 'Y');

            //Show final seating chart
            System.out.println( "Final seating chart" );
            System.out.println();
            printSeats(planeSeats);


这是报错内容:

img

下面main里的代码是不能改的,那怎么改上面方法里的代码呢?
求解答,谢谢!

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-12-25 10:20
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月25日

悬赏问题

  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊