PTA 程序设计天梯赛 Java L1-007 念数字 (10分)

L1-007 念数字

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:

0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu

输入格式:
输入在一行中给出一个整数,如:1234。

提示:整数包括负数、零和正数。

输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。

输入样例:

-600

输出样例:

fu liu ling ling

实现代码


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;



public class Main {
    
    
    public static void main(String[] args) {
    
    
        Map<String,String > map = new HashMap<>();  
        map.put("0", "ling");   //将所有的拼音放入map 方便比较查询使用 
        map.put("1","yi");
        map.put ("2","er");
        map.put("3","san");
        map.put("4","si");
        map.put("5","wu");
        map.put("6","liu");
        map.put("7","qi");
        map.put("8","ba");
        map.put("9","jiu");
        map.put("-","fu");
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        try {
    
    
            String[] strs = bf.readLine().split("");  // 控制台输入
            for (int i = 0; i < strs.length; i++) {
    
      // 把字符串数组里的数字对应的拼音 取出来
                strs[i] = map.get(strs[i]);
            }
            String printStr = join(strs," ");  //字符串拼接 将字符串数组的值用空格连接起来
            System.out.println(printStr); //输出
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }

    public static String join(String[] strs ,String reg){
    
    
        String str = "";
        for (int i = 0; i < strs.length; i++) {
    
    
            str += strs[i];
            if (i == strs.length-1) continue;
            str += reg;
        }
        return str;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_37079157/article/details/109270044