用户输入大小写-Java

用户输入大小写-Java,java,Java,我正在尝试以大写或小写形式输入A或B,以继续执行if语句。我不知道该怎么做。目前,它只采用大写字母A或B。环顾论坛和课堂笔记,什么也没找到。任何帮助都将被感激! 我试过使用toUpperCase,但我认为我没有把它放在正确的位置。它总是给我一个错误 import java.util.Scanner; public class printNumber{ public static void main (String[] args){ Scanner input = new

我正在尝试以大写或小写形式输入A或B,以继续执行if语句。我不知道该怎么做。目前,它只采用大写字母A或B。环顾论坛和课堂笔记,什么也没找到。任何帮助都将被感激! 我试过使用toUpperCase,但我认为我没有把它放在正确的位置。它总是给我一个错误

import java.util.Scanner;

public class printNumber{
    public static void main (String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("Please select an option between A or B: ");
        char user = input.next().charAt(0);

        System.out.println("You have selected " +user+ " : ");    
        if (user == 'A'){
            for(int n=1; n<=100; n++){
                if((n%2)==0)
                    System.out.println(n);
            }
        }
        else if (user =='B'){
            for (int x =1; x<=100; x=x+2){
                System.out.println(x);
            }
        }
        else
            System.out.println("Error, please try again!");
    }
}
试试这个

if (user == 'A' || user == 'a')
对于“B”也一样

您可以使用

char user = input.next().toUpperCase().charAt(0);
您正在调用Scanner类的下一个方法,该方法返回字符串,因此您可以对输入字符串使用equalsIgnoreCase方法进行验证,而不是将其转换为字符。但始终检查输入字符串的长度,如果用户输入的字符串长度大于1,则显示错误消息

a、 equalsIgnoreCaseA和a.equalsIgnoreCaseA将始终为真

import java.util.Scanner;

public class printNumber{
  public static void main (String[] args){
        Scanner input = new Scanner(System.in);

        System.out.println("Please select an option between A or B: ");
    String opt=input.nextLine();

    System.out.println("You have selected " +user+ " : ");

    if (opt.equalsIgnoreCase("A")){

    for(int n=1; n<=100; n++){
      if((n%2)==0)
        System.out.println(n);
     }
    }
    else if (opt.equalsIgnoreCase("B")){
    for (int x =1; x<=100; x=x+2){
      System.out.println(x);
     }
    }
    else
      System.out.println("Error, please try again!");
  }
}
或者你可以简单地使用

  import java.util.Scanner;

    public class printNumber{
      public static void main (String[] args){
            Scanner input = new Scanner(System.in);

            System.out.println("Please select an option between A or B: ");
        String opt=input.next();

        System.out.println("You have selected " +user+ " : ");

        if (opt == "A" || opt == "a"){

        for(int n=1; n<=100; n++){
          if((n%2)==0)
            System.out.println(n);
         }
        }
        else if (opt == "B" || opt == "b"){
        for (int x =1; x<=100; x=x+2){
          System.out.println(x);
         }
        }
        else
          System.out.println("Error, please try again!");
      }
    }

啊,我明白了。我正在做这个用户=‘a’a’a’。欢迎您,并把其中一个答案标记为“接受”,以将您的问题标记为“solvedhey andrew,快速提问”。在这种情况下,readLine的用途是什么?是因为opt在本例中是字符串而不是字符吗?我已经更改了答案。我们使用readLine方法读取InputStream;BufferedReader br=新的BufferedReaderin;字符串a=br.readLine@Andrew Watson您不应该使用==运算符来检查两个字符串,它只会比较地址位置opt,字符串文字将位于两个不同的位置,在代码的第二部分中,使用字符串类中被重写的equals方法来比较两个对象的数据。我们可以明确地将==用于字符串文字。它不会冲突,但如果我们使用string对象,然后使用==,则不会给出true而不是false,因为对象在堆中的位置不同。我理解您的概念,但您应该将输入保留在变量中,然后与equalsIgnoreCase@Andrew沃森,我所说的输入是用户输入的数据,而不是扫描仪参考。谢谢注意,我已经编辑了我的问题。