今天看到一篇文章:【原始链接】
题目是“读入一个数n,计算其各位数字之和,用汉语拼音写出和的每一位数字”,是用c语言实现的。由于我目前正在学习java,所以想用java来实现下。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Int_to_String {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
int sum = 0 ;
String str = br.readLine();
//解决超出int类型问题。将字符串用字符数组装起来。
char[] ch = str.toCharArray();
for (int i = 0 ; i < ch.length ; i ++) {
//求和
sum += new Integer(""+ch[i]).intValue();
}
System.out.println(print_f(sum));
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static String print_f(int sum) {
int k = 1;
int m = sum;
String str = "";
while (m >= 10) {
k *= 10 ;
m /= 10;
}
while(k != 0) {
str += int_to_String(sum / k)+" ";
sum %= k;
k /= 10;
}
return str.substring(0, str.length()-1);
}
//转换
public static String int_to_String(int n) {
String ss = "";
switch (n) {
case 0:
ss = "ling";
break;
case 1:
ss = "yi";
break;
case 2:
ss = "er";
break;
case 3:
ss = "san";
break;
case 4:
ss = "si";
break;
case 5:
ss = "wu";
break;
case 6:
ss = "liu";
break;
case 7:
ss = "qi";
break;
case 8:
ss = "ba";
break;
case 9:
ss = "jiu";
break;
default:
break;
}
return ss;
}
}
转载于:https://blog.51cto.com/azhome/1546766