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

如何实现单个字符的大小写反转?

实现单个字符的大小写反转(Java)

嘿,这个需求其实很容易搞定,我给你两种实用的方案,你可以根据自己的需求选:

方案一:用Java自带的Character工具类(最省心)

Java的java.lang.Character类已经封装好了大小写判断和转换的方法,直接用就行,完全不用自己造轮子。

完整代码示例:

package nine.march.twenty;
import java.util.Scanner;

public class UpperCaseToLowerCase {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个字符:");
        // 获取输入的单个字符
        char ch = scanner.next().charAt(0);
        
        char reversedChar;
        // 判断是否是小写字母
        if (Character.isLowerCase(ch)) {
            reversedChar = Character.toUpperCase(ch);
        } 
        // 判断是否是大写字母
        else if (Character.isUpperCase(ch)) {
            reversedChar = Character.toLowerCase(ch);
        } 
        // 如果输入的不是字母,直接返回原字符
        else {
            reversedChar = ch;
            System.out.println("输入的不是字母,直接返回原字符:");
        }
        
        System.out.println("转换后的字符是:" + reversedChar);
        scanner.close();
    }
}

代码解释:

  • 用Scanner获取用户输入的字符,通过charAt(0)取输入字符串的第一个字符(毕竟你要的是单个字符输入嘛)。
  • Character.isLowerCase(ch)判断是不是小写字母,是的话用toUpperCase()转成大写;反之如果是大写字母,用toLowerCase()转成小写。
  • 额外加了非字母的处理逻辑,避免输入数字、符号这类字符时出错。

方案二:手动操作ASCII码值(理解底层原理)

如果你想搞清楚背后的逻辑,可以直接操作字符的ASCII码:

  • 大写字母A-Z的ASCII码范围是65-90
  • 小写字母a-z的ASCII码范围是97-122
  • 同一字母的大小写ASCII码刚好相差32(比如'A'是65,'a'是97,97-65=32)

所以我们可以通过判断字符的ASCII范围,然后加减32来实现反转:

完整代码示例:

package nine.march.twenty;
import java.util.Scanner;

public class UpperCaseToLowerCase {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个字符:");
        char ch = scanner.next().charAt(0);
        
        char reversedChar;
        // 判断是否是小写字母(ASCII 97-122)
        if (ch >= 'a' && ch <= 'z') {
            reversedChar = (char) (ch - 32);
        } 
        // 判断是否是大写字母(ASCII 65-90)
        else if (ch >= 'A' && ch <= 'Z') {
            reversedChar = (char) (ch + 32);
        } 
        // 非字母情况
        else {
            reversedChar = ch;
            System.out.println("输入的不是字母,直接返回原字符:");
        }
        
        System.out.println("转换后的字符是:" + reversedChar);
        scanner.close();
    }
}

代码解释:

  • 这里直接用字符和'a'、'z'比较,本质就是在比较它们的ASCII码值。
  • 小写转大写就减32,大写转小写就加32,注意要强制转成char类型,因为加减后会变成int类型。

这两种方案都能完美实现你要的效果:输入'a'输出'A',输入'A'输出'a',还能处理非字母的情况哦!

内容的提问来源于stack exchange,提问作者Sanjay Kumar Das

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:57:43