1. 程式人生 > >讀入一個整數,用漢語拼音將這個整數的每一位輸出出來

讀入一個整數,用漢語拼音將這個整數的每一位輸出出來

你的程式要讀入一個整數,範圍是[-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 --;
		}
		
	}
}