PTA乙级Java解题-1002写出这个数

一、题目解析

原题目:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

题目解析:以String形式读入n的每一位,存入后使用substring()函数拆分每一位并进行加和。

利用StringBuilder类建立可修改的字符串,利用switch语句把每位数转化为拼音形式添加到字符串后即可

二、代码

代码如下:

import java.util.Scanner;
class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        int length = s.length();
        String substring;
        int sum = 0;
        for(int i=0;i<length;i++){
            substring = s.substring(i,i+1);
            int data = Integer.parseInt(substring);
            sum+=data;
        }
        Integer a = Integer.valueOf(sum);
        String ss = a.toString(); 
        int nlength = ss.length();
        StringBuilder S = new StringBuilder();
        for(int i=0;i<nlength;i++){
            String p = ss.substring(i,i+1);
            switch(p){
                    case("0"):
                        S.append("ling");
                    break;
                    case("1"):
                        S.append("yi");
                    break;
                    case("2"):
                        S.append("er");
                    break;
                    case("3"):
                        S.append("san");
                    break;
                    case("4"):
                        S.append("si");
                    break;
                    case("5"):
                        S.append("wu");
                    break;
                    case("6"):
                        S.append("liu");
                    break;
                    case("7"):
                        S.append("qi");
                    break;
                    case("8"):
                        S.append("ba");
                    break;
                    case("9"):
                        S.append("jiu");
                    break;
                default:
                    break;
            }
            if(i != nlength-1){
                S.append(" ");
            }
        }
        String S1 = S.toString();
        System.out.println(S1);
    }
}

总结

要注意数据读取以及switch的格式

欢迎大神不吝赐教和批评!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值