如何在 Java 中将字符串的最后两个字母转换为大写

本文介绍一种简洁高效的方法,使用 substring() 和 touppercase() 将任意字符串的末尾两个字符转为大写,并支持键盘输入交互,适合初学者快速掌握字符串操作核心技巧。

在 Java 中,若需将一个单词(如 "eat")的最后两个字母大写(输出 "eAT"),无需复杂遍历或字符数组处理——关键在于合理切分字符串、分别处理、再拼接。下面给出清晰、健壮且可直接运行的完整解决方案。

✅ 核心思路

  1. 获取原始字符串长度 n;
  2. 使用 substring(0, n-2) 提取前 n−2 个字符(即去掉末两位的部分);
  3. 使用 substring(n-2) 提取最后两个字符,并调用 .toUpperCase() 转为大写;
  4. 将两部分字符串拼接返回。
⚠️ 注意:该逻辑要求字符串长度 ≥ 2。若输入长度不足(如 "a" 或空字符串),需添加边界判断,避免 StringIndexOutOfBoundsException。

✅ 完整可运行代码(含键盘输入)

import java.util.Scanner;

public class CapitalizeLastTwo {
    public static String capitalizeLastTwo(String str) {
        if (str == null || str.length() < 2) {
            return str; // 不足两位,不处理(或按需抛异常/提示)
        }
        int len = str.length();
        String prefix = str.substring(0, len - 2);
        String suffix = str.substring(len - 2).toUpperC

ase(); return prefix + suffix; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个单词: "); String input = scanner.nextLine().trim(); String result = capitalizeLastTwo(input); System.out.println("结果: " + result); scanner.close(); } }

? 运行示例

请输入一个单词: eat
结果: eAT

请输入一个单词: hello
结果: helLO

请输入一个单词: ab
结果: AB

请输入一个单词: x
结果: x

? 补充说明

  • substring(int beginIndex):从指定索引到末尾;substring(int beginIndex, int endIndex):左闭右开区间。
  • .toUpperCase() 会自动处理非字母字符(如数字、符号)——它们保持不变,仅对英文字母生效,安全可靠。
  • 若需忽略空格、只处理纯字母结尾(如 "hello world " → "hello worLD"),则需先 trim() 再处理,本例已包含 .trim() 示例。

掌握这种“分段+变换+组合”的字符串处理模式,不仅能解决当前问题,也为后续学习正则替换、StringBuilder 操作等打下坚实基础。