PAT乙级考试-1002.写出这个数

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 }

猜你喜欢

转载自www.cnblogs.com/hxb-00/p/11128750.html