public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextLine()) { // 注意 while 处理多个 case String str = in.nextLine(); StringBuilder sb = new StringBuilder(); boolean star = false; // 没有星 for (int i = 0; i < str.length(); i++) { if (Character.isDigit(str.charAt(i))) { // 数字 if (!star) { sb.append("*"); star = true; } } else { // 英文 if (star) { sb.append("*"); star = false; } } sb.append(str.charAt(i)); // 每一轮都要将字符加到StringBuilder 中 } if (Character.isDigit(str.charAt(str.length() - 1))) { // 最后一位为数字,那么需要后面加星号 sb.append("*"); } System.out.println(sb.toString()); } }