Java调用equalsIgnoreCase比对自身报错,字符串判断逻辑如何修正?
代码问题梳理
- 目标字符串赋值错误:定义的
hallo值为"Hallo.",多了末尾小数点,不符合需求要求的"Hallo" - 用户输入未存储:执行
input.nextLine()后没有将返回的用户输入内容赋值给变量,无法参与后续比对 - 比对逻辑错误:
hallo.equalsIgnoreCase(hallo)是同一个变量和自身比对,因此触发“equalsIgnoreCase is called on itself”的提示 - 无用代码:
System.out.println(input)会打印Scanner对象的自身信息,无实际业务作用,还有多余的嵌套大括号可以移除 - 输出内容不符:else分支输出的
"Tschüss."多了末尾小数点,和需求不符
修正后完整代码
import java.util.Scanner; class Main { public static void main(String[] args) { String hallo = "Hallo"; Scanner input = new Scanner(System.in); // 读取用户输入并存储到变量 String userInput = input.nextLine(); if (hallo.equalsIgnoreCase(userInput)) { System.out.println(hallo); } else { System.out.println("Tschüss"); } input.close(); } }
内容的提问来源于stack exchange,提问作者Captain _Schnabo
相关产品推荐
相关产品推荐

