讀入一個整數,用漢語拼音將這個整數的每一位輸出出來
阿新 • • 發佈:2019-02-05
你的程式要讀入一個整數,範圍是[-100000,100000]。然後,用漢語拼音將這個整數的每一位輸出出來。
如輸入1234,則輸出:
yi er san si
注意,每個字的拼音之間有一個空格,但是最後的字後面沒有空格。當遇到負數時,在輸出的開頭加上“fu”,如-2341輸出為:
fu er san si yi
輸入格式:
一個整數,範圍是[-100000,100000]。
輸出格式:
表示這個整數的每一位數字的漢語拼音,每一位數字的拼音之間以空格分隔,末尾沒有空格。
輸入樣例:
-30
輸出樣例:
fu san ling
import java.util.Scanner; import javax.swing.plaf.synth.SynthStyleFactory; public class Main { private static Scanner in; public static void main(String[] args) { // TODO Auto-generated method stub //念整數 /*你的程式要讀入一個整數,範圍是[-100000,100000]。然後,用漢語拼音將這個整數的每一位輸出出來。 如輸入1234,則輸出: yi er san si 注意,每個字的拼音之間有一個空格,但是最後的字後面沒有空格。當遇到負數時,在輸出的開頭加上“fu”,如-2341輸出為: fu er san si yi 輸入格式: 一個整數,範圍是[-100000,100000]。 輸出格式: 表示這個整數的每一位數字的漢語拼音,每一位數字的拼音之間以空格分隔,末尾沒有空格。 輸入樣例: -30 輸出樣例: fu san ling ********************************************************************************/ in = new Scanner(System.in); int input = in.nextInt(); int sign; int _input; int count = 0; //判斷輸入的數字是否在取值範圍內 while(input > 100000||input < -100000) { System.out.println("Illegal input, please input again."); input = in.nextInt(); } //如果為負數,先輸出 fu if(input < 0) { System.out.print("fu "); } _input = input; //計算數字的位數 while(_input != 0) { _input = _input/10; count ++; } //輸出字元 while(count > 0) { int js = (int)Math.pow(10, count-1);//取數字的第一位 sign = (int) (input /js); input = input % js; switch(Math.abs(sign)) { case 0:System.out.print("ling ");break; case 1:System.out.print("yi ");break; case 2:System.out.print("er ");break; case 3:System.out.print("san ");break; case 4:System.out.print("si ");break; case 5:System.out.print("wu ");break; case 6:System.out.print("liu ");break; case 7:System.out.print("qi");break; case 8:System.out.print("ba");break; case 9:System.out.print("jiu");break; default:break; } count --; } } }