题目
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10
100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
代码示例
import java.util.Scanner;/*** @Author zhanglifang* @create 2020-07-14 20:00*/
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String stringNum = in.nextLine();char[] chars = stringNum.toCharArray();int sum = 0;for (char item : chars) {// 用(int)item得到的ascII值,需减去48,例如char='0',(int)item得到的是48//或者使用Integer.parseInt("stringValue");sum = sum + Integer.parseInt(item + "");}String stringSum = sum + "";char[] cs = stringSum.toCharArray();String result = "";for (char c : cs) {result = result + num2hanzi(c) + " ";}result = result.substring(0,result.length()-1);System.out.println(result);}private static String num2hanzi(char c){if (c == '0'){return "ling";}else if (c == '1'){return "yi";}else if (c == '2'){return "er";}else if (c == '3'){return "san";}else if (c == '4'){return "si";}else if (c == '5'){return "wu";}else if (c == '6'){return "liu";}else if (c == '7'){return "qi";}else if (c == '8'){return "ba";}else {return "jiu";}}
}
思路总结
代码中stringNum.toCharArray()得到的char[] chars数组里的元素,进行拼接操作时,我想到了两种思路:
1)使用Integer.parseInt(“stringValue”);
2)用(int)item强转得到的ascII值,需减去48,例如char=‘0’,(int)item得到的是48。