如何编写实现大小写翻转、数字按规则转换且支持循环输入的Java程序
最终实现代码
import java.util.Scanner; public class StringConverter { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 无限循环接收输入,直到输入q/Q退出 while (true) { System.out.print("Enter string (enter q/Q to exit): "); String str1 = scan.nextLine(); // 匹配退出条件 if (str1.equalsIgnoreCase("q")) { System.out.println("程序已退出"); break; } StringBuffer newStr = new StringBuffer(str1); for (int i = 0; i < str1.length(); i++) { char currentChar = str1.charAt(i); // 小写字母转大写 if (Character.isLowerCase(currentChar)) { newStr.setCharAt(i, Character.toUpperCase(currentChar)); } // 大写字母转小写 else if (Character.isUpperCase(currentChar)) { newStr.setCharAt(i, Character.toLowerCase(currentChar)); } // 数字字符处理逻辑 else if (Character.isDigit(currentChar)) { // 字符转数值 int num = currentChar - '0'; int doubled = num * 2; // 统一处理一位/两位结果:十位加个位 int convertRes = doubled / 10 + doubled % 10; // 数值转回字符替换 newStr.setCharAt(i, (char)(convertRes + '0')); } // 其余非字母数字字符保持原样不处理 } System.out.println("String after conversion : " + newStr); } scan.close(); } }
核心修改说明
- 外层新增无限循环逻辑,每次输入先校验是否为
q/Q,匹配则直接终止程序 - 新增数字处理分支,通过
字符减'0'转成数值计算,结果通过加'0'转回字符类型,适配所有0-9的数字输入 - 非字母数字的符号、空格等字符保持原内容不变
运行效果示例
Enter string (enter q/Q to exit): aBc78
String after conversion : AbC47
Enter string (enter q/Q to exit): Test123
String after conversion : tEST246
Enter string (enter q/Q to exit): q
程序已退出
内容的提问来源于stack exchange,提问作者Ruby
相关产品推荐
相关产品推荐

