1002.写出这个数
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 1。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
1 import java.util.Map; 2 import java.util.HashMap; 3 import java.util.Scanner; 4 5 public class Main { 6 7 //读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 8 public static void main(String[] args) { 9 10 Scanner input = new Scanner(System.in); 11 String str = input.nextLine(); 12 13 //字符串转int数组 14 int[] arr = new int[str.length()]; 15 for(int i=0;i<str.length();i++){ 16 arr[i] = Integer.parseInt(str.substring(i,i+1)); 17 } 18 Integer sum=0; //输入整数的和 19 20 for(int j=0;j<arr.length;j++){ 21 sum += arr[j]; 22 } 23 24 //int[] arr1 = sum.toString().toCharArray()Select(s => int.Parse(s.ToString())).ToArray(); 25 String str1 = sum.toString(); //int转字符串 26 String[] s = str1.split(""); //字符串转字符串数组; 27 String ss=""; //最终输出的字符串 28 29 for(int k=0;k<s.length;k++){ 30 ss = ss + map(s[k]) + " "; 31 } 32 ss = ss.substring(0,ss.length()-1); //去掉最后一个字符,即空格 33 System.out.println(ss); 34 } 35 36 private static String map(String str){ //构建数字与中文对应的map; 37 Map<String,String> map = new HashMap<String,String>(); 38 map.put("0","ling"); 39 map.put("1","yi"); 40 map.put("2","er"); 41 map.put("3","san"); 42 map.put("4","si"); 43 map.put("5","wu"); 44 map.put("6","liu"); 45 map.put("7","qi"); 46 map.put("8","ba"); 47 map.put("9","jiu"); 48 return map.get(str); 49 } 50 }