今天看到一篇文章:【原始鏈接】
題目是“讀入一個數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; } }