
本文介绍一种简洁高效的方法,使用 substring() 和 touppercase() 将任意字符串的末尾两个字符转为大写,并支持键盘输入交互,适合初学者快速掌握字符串操作核心技巧。
在 Java 中,若需将一个单词(如 "eat")的最后两个字母大写(输出 "eAT"),无需复杂遍历或字符数组处理——关键在于合理切分字符串、分别处理、再拼接。下面给出清晰、健壮且可直接运行的完整解决方案。
✅ 核心思路
- 获取原始字符串长度 n;
- 使用 substring(0, n-2) 提取前 n−2 个字符(即去掉末两位的部分);
- 使用 substring(n-2) 提取最后两个字符,并调用 .toUpperCase() 转为大写;
- 将两部分字符串拼接返回。
⚠️ 注意:该逻辑要求字符串长度 ≥ 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).toUpperCase();
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 操作等打下坚实基础。










