如何实现输入abcde输出12345?现有Java代码输出ASCII值需修改
解决方案:输入abcde输出12345的Java代码修改
原代码直接将字符转为整数时,输出的是字符对应的ASCII码值(如'a'对应97),要实现输入小写字母对应输出1-26的顺序数字,只需调整字符到数字的映射逻辑:
修改后的代码:
Scanner scanner = new Scanner(System.in); String s1 = scanner.nextLine(); char[] c1 = s1.toCharArray(); for (char c : c1) { // 小写字母转对应顺序数字:a→1,b→2...z→26 System.out.print(c - 'a' + 1); }
关键逻辑说明
Java中字符本质是Unicode编码值,小写字母a到z的编码是连续的(a为97,b为98,依此类推)。用当前字符c减去'a'的编码值,会得到0-25的结果,再加1就对应1-26的顺序数字,正好满足输入abcde输出12345的需求。
如果需要兼容大写字母输入,可以先将字符转为小写再计算:
System.out.print(Character.toLowerCase(c) - 'a' + 1);
内容的提问来源于stack exchange,提问作者NamsO
相关产品推荐
相关产品推荐

