关于scan.nextBoolean问题

在做一个程序的时候,需要建立一个Boolean数组来存储可食用和不可食用性,然后需要用scan.nextBoolean来查看用户输入的是Y/N来决定对应的可食用或不可食用来存储到数组中,可是scan.nextBoolean只能扫描用户输入的是true还是false,我应该如何定义Y为可食用(true)来达到用户只需要输入Y就可以将true存储到数组当中呢

import java.util.Scanner;
public class Main {
  public static void main(String []args){
    Scanner in=new Scanner(System.in);
    System.out.println("输入数组大小:");
    Boolean [] bools =new Boolean[in.nextInt()];
    for(int i=0;i<bools.length();i++){
      System.out.println("输入第"+(i+1)+"个是否可食用:");
      String str=in.next();
      if("Y".equals(str)){
        bools[i]=true;
      }else if("N".equals(str)){
        bools[i]=false;
      }else{
        System.out.println("输入异常,程序结束!");
        return;
      }
    }
  }
}

输入字符串,然后判断第一个字符是Y还是N
String s = sc.nextline();
if(s.charAt(0) == 'Y')
...

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String b = scanner.nextLine();
        if("Y".equals(b)){
            System.out.println("y");
        }else{
            System.out.println("n");
        }
    }

这个思路很简单,你根据用户输入的内容进行判断,如果是Y的话,数组加添加 一个true 元素,否则为 添加一个 false 元素 。
简单来说就是用户输入的内容和你的代码逻辑存储内容不是一一对应的,可以通过代码逻辑进行控制数组的存储