栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

汉语拼音念整数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

汉语拼音念整数

你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。

如输入1234,则输出:

yi er san si

注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:

fu er san si yi

这个程序我费了好久,并且参考了以前写的东西才写出来的,不容易啊。

分解成很多小程序,分别如下

1 求输入单个数字时输出它所对应的汉语拼音。

switch (s) {
    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;
    }
}

2 范围是[-100000,100000]可以写一个if语句来把负数的处理一下

if (n < 0) {
    System.out.print("fu"+" ");
    n = -n;
}

3 分离大的数据 比如说是1234,把他分成 1 2 3 4为了正向输出,必须先算出模

//求模
int t = n;
int mode = 1;
while (t > 9) {
    mode *= 10;
    t /= 10;
}
//分离数字
s = n / mode;
n = n % mode;//必须处理n,否则就只能进行一次
mode /= 10;

做完这些工作就差不多了,只需要好好处理一下空格,但是也挺麻烦的,位置很重要,之前我在数字之后加空格,每个数最后一个数字都多了一个空格,注意插入空格应该在数据每个数的后面,然后最后一个数字时需要,插入条件应该把最后一个字母给pass掉。

完整代码如下:

package ReadInteger;

import java.util.Scanner;

public class ReadInteger {
    public static void main(String[] args) {

        System.out.println("请输入数据:");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int s = 0;
        //处理负数
        if (n < 0) {
            System.out.print("fu"+" ");
            n = -n;
        }
        //求模
        int t = n;
        int mode = 1;
        while (t > 9) {
            mode *= 10;
            t /= 10;
        }
        if (n <= 1000000 && n >= 0) {
            while (mode > 0) {
                //分离数字
                s = n / mode;
                n = n % mode;//必须处理n,否则就只能进行一次
                mode /= 10;
                switch (s) {
                    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;
                    }
                }
                if(mode>0){
                    System.out.print(" ");}


            }
        }
    }
}
今天组会开了好久,中午又没休息好,整个人昏昏的,漂亮啊,明天过了就在实验室午休吧,说到做到!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/325155.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号