Java 输入a或b打印1输入其他打印0

Java 输入a或b打印1输入其他打印0
那出问题了 不管输入啥都只打印0

img

字符串比较 要用equals,才是 比较的值, == 比较的是地址,只有基本数据类型,可以这样比较

判断条件不对

Scanner sc = new Scanner(System.in);
String n = sc.next();
if (n.equals("a") || n.equals("b")) {
    System.out.println(1);
} else {
    System.out.println(0);
}


比较字符串的内容是否相等可以使用equals来判断;

如果要使用==来比较的话,可以把变量n的数据类型改为char,然后取输入的字符串的第一个字符赋值给它,然后再与字符'a'或字符'b'来比较。

修改如下:

参考链接:


Java用Scanner类获得单个字符_字符scanner_CC猜猜的博客-CSDN博客 Java用Scanner类获得单个字符要知道在Java的Scanner类中是没有输入单个字符的方法的理论上我们可以输入nextChar来获取键盘上的一个字符的对吧。但是没有这个方法那该怎么获取单个字符那?因为Scanner类中没有提供直接获取单个字符的方法那我们先用String类来接收在用字符串中的charAt方法来获取字符串中的字符这是获取了字符串中的第一个字符,因为Java的下标是从0开始的,所以这里输入0就是获取d字符串的第一个字符如此可知获取字符串中的最后一位字符为d.l https://blog.csdn.net/qq_40608548/article/details/111315990


import java.util.Scanner;

public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个字母");
            
            // 第一种方式
            // http://c.biancheng.net/view/5808.html
            String n = sc.next();
            if(n.equals("a")||n.equals("b")) {
                System.out.println(1);
            }else {
                System.out.println(0);
            }
            
            // 第二种方式
    //        https://blog.csdn.net/qq_40608548/article/details/111315990
//            // 如果要使用==,可以把n定义为字符类型,然后取从输入获取的字符串的第一个字符赋值给它
//            // 然后使用这个字符来比较是否字符a还是字符b
//            char n = sc.next().charAt(0);
//            if(n=='a'||n=='b') {
//                System.out.println(1);
//            }else {
//                System.out.println(0);
//            }
            
    }

}

img

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7441729
  • 这篇博客你也可以参考下:java 输入a,b之间的素数
  • 除此之外, 这篇博客: 蓝桥杯第12届模拟赛Java组中的 如果整数a是整数b的整数倍,则称b是a的约数。请问,有多少个正整数是2020的约数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •  **【答案提交】**
      这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
      **【答案】12**
    
    package com.jinglan.exercise;
    public class Demo04 {
    	public static void main(String[] args) {
    		//求2020的约数的个数
    		//约数 一个数最大的约数是它本身
    		//能被2020整除的数就是它的约数
    		int count=0;
    		for(int i=1;i<=2020;i++) {
    			if(2020%i==0) {
    				System.out.println(i);
    				count++;
    			}
    		}
    		System.out.println(count);
    	}
    
    }
    
    

    【问题描述】

  • 您还可以看一下 孙杰老师的图解&代码-深度了解基础数据结构-Java版课程中的 25分钟手写B树,主结构+查询小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以给出如下的解决方案:

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            char input = scanner.next().charAt(0);
    
            if (input == 'a' || input == 'b') {
                System.out.println("1");
            } else {
                System.out.println("0");
            }
        }
    }
    

    这段代码通过 Scanner 获取输入的第一个字符,判断是否为 'a' 或 'b',如果是则打印 1,否则打印 0。

    如果你在尝试将输入转换为字符串然后再比较时仍然出现问题,可以检查以下几点:

    1. 输入的字符是否为英文字符,如果是中文字符可能会存在编码问题;
    2. 在比较字符时,使用双引号表示字符串,使用单引号表示字符;
    3. 确保代码没有其他逻辑或操作影响了判断过程。