You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:34:00