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;
}
}