移动测试基础 菜鸡学 JAVA-PAT 乙级真题 1002

戴泽楠 · 2016年07月29日 · 最后由 雪怪 回复于 2016年07月29日 · 1151 次阅读


代码如下:

import java.util.Scanner;

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

        Scanner sc=new Scanner(System.in);
        String s=sc.next();
        int[] a=new int[s.length()];
        int sum1=0;
        for(int i=0;i<s.length();i++)
        {
            a[i]=Integer.parseInt(s.substring(i,i+1));//String转换成int;String截取字符串的方法substring()
            sum1=sum1+a[i];
        }

        String sum1toString=String.valueOf(sum1);//int转换成String
        String sum2="";
        for(int i=0;i<sum1toString.length();i++)
        {
              String x=null;
            switch (Integer.parseInt(sum1toString.substring(i,i+1))) {   //这里先调用String的substring()方法再把String转换成int
            case 0: x="ling";break;
            case 1: x="yi";break;
            case 2: x="er";break;
            case 3: x="san";break;
            case 4: x="si";break;
            case 5: x="wu";break;
            case 6: x="liu";break;
            case 7: x="qi";break;
            case 8: x="ba";break;
            case 9: x="jiu";break;
            default: 
                System.out.println("输入错误");
                break;
            }
            sum2=sum2+" "+x;
        }
        System.out.println(sum2.trim());//去掉字符串首尾的空格:trim()
    }
}

考察知识点:
1.数组
2.String 转换成 int;int 转换成 String;String 截取字符串的方法 substring();去掉字符串两侧的空格的函数 trim()
3.switch case

共收到 5 条回复 时间 点赞

没有对输入数据边界做检查,Int 转换异常未捕获处理

单位都没有,而且还没有用 UTF-8,差评。

#2 楼 @yangchengtest 请问单位是什么意思?

#1 楼 @lucasluo 题目考察的内容对数据边界没有要求检查,只要题目规定的输入条件代码能实现就行了。还有就是这种基础题一般都不会用到异常捕获。

老实说你发到测试论坛做什么,记录的话要去私人博客

戴泽楠 关闭了讨论 12月19日 16:54
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册