Java中如何比较char与String 实现用户输入字母循环退出功能
核心问题解答(char和String类型的比较方法)
Java中不同类型的值不能直接比较,你需要先统一类型,有两种常用合法方案:
- 把String转为char:调用String的
charAt(0)方法拿到首个字符,和char类型变量用==比较,示例:result == "a".charAt(0) - 把char转为String:调用
String.valueOf(你的char变量)得到字符串,和String类型变量用equals()比较,示例:String.valueOf(result).equals(letterA)
你现有代码的其他问题
- 逻辑不符合需求:当前代码只有判断输入是不是a的分支,其他所有输入都会直接触发退出逻辑,没有实现回显任意输入字母、仅输入q才退出的要求
- 语法错误:else分支内多了一个多余的左大括号,会直接导致编译报错
修复后可运行的完整代码
import java.util.Scanner; public class LetterInputTest { public static void main(String[] args) { // 初始化输入扫描器,你原有变量名为myChoclate,可自行替换 Scanner myChoclate = new Scanner(System.in); String guess = null; while (true) { System.out.println("Enter a letter: "); guess = myChoclate.next(); char inputChar = guess.charAt(0); // 先统一回显用户输入内容 System.out.println("You entered: " + inputChar); // 仅输入q时触发退出逻辑 if (inputChar == 'q') { System.out.println("goodbye!"); break; } } myChoclate.close(); } }
效果说明
运行后会循环提示输入字母,输入任意a-z字母都会回显输入内容,只有输入q时,输出goodbye后终止程序,完全匹配你要求的实现效果。
内容的提问来源于stack exchange,提问作者king
相关产品推荐
相关产品推荐

