看不尽的结构 2017-11-16 08:47 采纳率: 0%
浏览 884

java面试题目。。急需

一、 形如Microsoft excel中的列标为A、B、C……Z、AA、AB……ZZ,并假设A列标对应的为excel的第0列;请用最简单快捷的方式实现以下功能:
1、 任意输入1个或2个字母的组合,查找出该单个字母或组合对应的为哪列(例如输入AA,则打印出为第26列)
2、 任意输入1个列数字,查找出该列对应的字母或字母组合,如果越界则打印出“输入列越界,请重新输入”;(例如输入26,则打印出AA)
注意:不可采用定义大数组的方式,即定义所有字母及组合的一个大数组

  • 写回答

2条回答

  • xiaozhuai7 2017-11-16 09:44
    关注

    写了下,代码不好看,但是可以用。

    
    
    public class test{
        public static void main(String[] args){
            if(args.length<1){
                System.out.println("没有输入");
                return;
            }
    
            transform(args[0]);
        }
    
        public static void transform(String str){
            try{
                int num = Integer.parseInt(str);
                if(num > 26*26*25){
                    System.out.println("输入列越界,请重新输入");
                    return;
                }
                String text = "";
                int tmp = num / 26;
                if(tmp>0) text += (char)('A'+tmp-1);
                tmp = num % 26;
                text += (char)('A'+tmp);
                System.out.println(text);
            }catch(Exception e){
                String text = str.toUpperCase();
                if(text.length()>2 || text.length()<1){
                    System.out.println("输入字符串不正确,请重新输入");
                    return;
                }
                char[] chars = text.toCharArray();
                int num = 0;
                if(chars.length==1){
                    num += chars[0]-'A';
                }else{
                    num += chars[1]-'A';
                    num += (chars[0]-'A'+1)*26;
                }
                System.out.println(num);
            }
        }
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素