A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© EdwardWuang   /  2016-9-19 09:06  /  3060 人查看  /  28 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

其实不难,可能是你因为没有面试过有点紧张,放松好心态,社招更好过点
回复 使用道具 举报
你上什么班的
回复 使用道具 举报
看了下大家写的,最多写道1000以内,我这次点招的题目要求写到万位,哭瞎
回复 使用道具 举报
感觉这种题如果是有个范围会比较好做
回复 使用道具 举报
学习学习!
回复 使用道具 举报
学到了!!!!
回复 使用道具 举报
EdwardWuang 发表于 2016-9-19 23:00
看了下大家写的,最多写道1000以内,我这次点招的题目要求写到万位,哭瞎

我写到了亿位的,已经是int 的极限了..就是代码比较啰嗦
回复 使用道具 举报
写了个千位以内的,比较简单,再大点就比较繁琐了。

package cn.itcast;

import java.util.Scanner;

/*
* 数字转换汉字小程序,要求如下:
1.键盘录入一个大于-1小于1000的正整数,将该整数转换成中文在控制台输出
2.除非输入数字不在规定的范围,否则可以一直进行输入转换
小于10,数字后不需要带单位
                大于9小于100,数字后需要带单位”十”
                大于99小于1000,数字后需要带单位”百”
                数字转换成中文样式如下:
                5        五
                15       一十五
                115      一百一十五
               
*/
public class Demo2 {
    public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
               
                String[] arr = {"0","1","2","3","4","5","6","7","8","9"};
                String[] arr1 = {"零","一","二","三","四","五","六","七","八","九"};
                while(true){
                        System.out.println("请输入一个大于-1小于1000的正整数");
                        String s = sc.next();
                        if(!s.matches("\\d+")){
                                System.out.println("不是正整数");
                                return;
                        }
                        for (int i = 0; i < arr1.length; i++) {
                                s=s.replace(arr[i], arr1[i]);
                        }
                        StringBuilder sb = new StringBuilder();
                        sb.append(s);
                        if(sb.length()==1){
                                System.out.println(sb);
                        }else if(sb.length()==2){
                                sb.insert(1, "十");
                                System.out.println(sb);
                        }else if(sb.length()==3){
                                sb.insert(1, "百");
                                sb.insert(3, "十");
                                System.out.println(sb);
                        }else{
                                System.out.println("数字不在规定范围");
                                return;
                        }
                }
        }
}
回复 使用道具 举报
学习学习!
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马