Java如何获取用户输入并删除字符串末尾的x字符?
Java 字符串末尾x移除逻辑修复
现有代码存在的问题
- 数据源混淆:读取用户输入存储到
readInput变量后,后续判断、修改字符串全程使用方法入参str,没有用到用户输入的内容 - 逻辑不符合需求:需求是最后两个字符均为x时才移除这两个x,现有逻辑是分别判断倒数第二位、倒数第一位是否为x单独删除,匹配规则错误
- 返回值硬编码:最终返回固定字符串
"str",而非处理后的结果 - 存在资源泄漏:Scanner使用完成后未关闭,且原有代码未导入Scanner相关包会触发编译错误
修复后代码
import java.util.Scanner; class Main { public static String problem1_removeChars() { Scanner myScanObj = new Scanner(System.in); System.out.println("Enter your string: "); String readInput = myScanObj.nextLine(); System.out.println("Your String Is: " + readInput); myScanObj.close(); // 关闭扫描器释放资源 int stringLength = readInput.length(); String result = readInput; // 匹配需求:长度>=2且最后两个字符都是x时,移除最后两位 if(stringLength >= 2 && readInput.charAt(stringLength - 2) == 'x' && readInput.charAt(stringLength - 1) == 'x') { result = readInput.substring(0, stringLength - 2); } return result; } public static void main(String[] args) { System.out.println(problem1_removeChars()); } }
调整说明
- 统一使用用户输入的
readInput作为处理数据源,删除无用的方法入参str - 调整判断规则,同时校验最后两位是否都为
'x',符合需求的移除条件 - 修复返回值为处理后的结果变量
- 新增Scanner关闭逻辑和包导入语句,避免编译错误和资源泄漏
内容的提问来源于stack exchange,提问作者GeekOnABudget
相关产品推荐
相关产品推荐

