您的位置:首页 > 编程语言 > Java开发

PAT-1002. 写出这个数 (20)--java

2018-01-03 11:15 477 查看


1002. 写出这个数 (20)

时间限制

400 ms

内存限制

65536 kB

代码长度限制

8000 B

判题程序

Standard

作者

CHEN, Yue

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789

输出样例:
yi san wu

---此代码,在eclipse中完好运行,但在PAt提交中出错~~

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Demo {  
    public static void main(String[] args) {  
    	Map<Character,String> m=new HashMap<>();
    	m.put('0', "ling");
    	m.put('1', "yi");
    	m.put('2', "er");
    	m.put('3', "san");
    	m.put('4', "si");
    	m.put('5', "wu");
    	m.put('6', "liu");
    	m.put('7', "qi");
    	m.put('8', "ba");
    	m.put('9', "jiu");
   
       Scanner sc=new Scanner(System.in);
       //int n =sc.nextInt();此处不应用int,太小了,而且各个数值不好相加,应利用String中的index(索引)
       String str=sc.next();
       char [] ch=str.toCharArray();//将此字符串转换为一个新的字符数组。
       int sum =0;

       for (char chi:ch){//for(循环变量类型 循环变量名称:要遍历的对象){}
    	   sum=sum+Integer.parseInt(String.valueOf(chi));
    	 }//parseInt将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的

//ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,
          //valueOf(String s)返回保存指定的 String 的值的 Integer 对象。
       char [] ch1=String.valueOf(sum).toCharArray();
       StringBuffer str1=new StringBuffer();

       for(char chii:ch1){
    	   str1.append("");
    	   str1.append(m.get(chii));
    	   
       }
       System.out.println(str1.toString());
       System.out.println(str1.toString().trim());//此字符串移除了前导和尾部空白的副本;如果没有前导和尾部空白,则返回此字符串
    		   
          
    }  
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PAT eclipse java