Java实现单词最后两个字母大写及键盘输入输出功能求助
解决方案
一、核心逻辑修改(最后两个字母大写)
针对你现有的代码,我们调整单词处理逻辑,转而处理每个单词的最后两个字符:
- 遍历字符串分割出每个单词,记录单词的起始索引
k和结束索引i(以空格或字符串末尾为分界) - 计算单词长度:
wordLength = i - k - 若单词长度≥2,将倒数第二个字符(
i-2)和最后一个字符(i-1)转为大写;长度为1时保持原样
这里用Character.toUpperCase()替代手动ASCII码计算,代码更易读且健壮。
二、添加键盘输入功能
用java.util.Scanner类实现键盘输入:
- 导入
Scanner类 - 在
main方法中创建实例读取用户输入 - 将输入字符串传入处理方法后输出结果
三、完整代码实现
import java.util.Scanner; class Main { static String lastTwoUpperCase(String str) { char[] ch = str.toCharArray(); for (int i = 0; i < ch.length; i++) { int k = i; // 定位当前单词的结束位置 while (i < ch.length && ch[i] != ' ') { i++; } int wordLength = i - k; // 仅处理长度≥2的单词 if (wordLength >= 2) { ch[i - 2] = Character.toUpperCase(ch[i - 2]); ch[i - 1] = Character.toUpperCase(ch[i - 1]); } } return new String(ch); } public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.print("请输入需要处理的字符串:"); String inputStr = scanner.nextLine(); String result = lastTwoUpperCase(inputStr); System.out.println("处理后的字符串:" + result); scanner.close(); } }
四、测试示例
- 输入
eat,输出eAT - 输入
hello world,输出helLO worLD
内容的提问来源于stack exchange,提问作者Rishi Kuntamukala
相关产品推荐
相关产品推荐

