用户输入大小写-Java
我正在尝试以大写或小写形式输入A或B,以继续执行if语句。我不知道该怎么做。目前,它只采用大写字母A或B。环顾论坛和课堂笔记,什么也没找到。任何帮助都将被感激! 我试过使用toUpperCase,但我认为我没有把它放在正确的位置。它总是给我一个错误用户输入大小写-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
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沃森,我所说的输入是用户输入的数据,而不是扫描仪参考。谢谢注意,我已经编辑了我的问题。