Java单个字符大小写互转:键盘输入字符转换问题咨询
单个字符大小写转换的完整解决方案
嗨,你已经把核心逻辑写得差不多啦!我帮你补全了未完成的代码,还做了一点小优化,让它更规范易读:
import java.util.Scanner; public class Nico4 { public static void main(String[] args) { char letra; boolean mayuscula; Scanner in = new Scanner(System.in); System.out.println("Ingrese una letra: "); letra = in.next().charAt(0); mayuscula = Character.isUpperCase(letra); // 布尔值可以直接作为判断条件,不用写==true哦 if (mayuscula) { letra = Character.toLowerCase(letra); } else { letra = Character.toUpperCase(letra); } // 补全输出转换结果的代码 System.out.println("转换后的字符是: " + letra); // 记得关闭Scanner,避免资源浪费 in.close(); } }
几个关键点说明:
- 读取字符的方式:你用
in.next().charAt(0)的思路完全正确,因为Java的Scanner没有直接读取单个字符的API,先读字符串再取首位字符是这个场景下的常规操作。 - 简化条件判断:
mayuscula本身就是布尔值,直接写if (mayuscula)比if (mayuscula == true)更简洁,这是Java里的小技巧。 - 工具类的优势:用
Character类的isUpperCase、toLowerCase这些方法比手动操作ASCII码更靠谱,能兼容更多特殊字符的转换。 - 资源管理:最后调用
in.close()是个好习惯,避免程序结束后残留未释放的资源。
如果你喜欢更紧凑的写法,还可以用三元运算符把判断和转换合并成一行:
import java.util.Scanner; public class Nico4 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Ingrese una letra: "); char letra = in.next().charAt(0); // 用三元运算符简化逻辑 letra = Character.isUpperCase(letra) ? Character.toLowerCase(letra) : Character.toUpperCase(letra); System.out.println("转换后的字符是: " + letra); in.close(); } }
这个版本代码更短,但可读性依然很好,适合追求简洁的场景。
内容的提问来源于stack exchange,提问作者Ariel Marcelo Pardo
相关产品推荐
相关产品推荐

