首页 > 其他 > 详细

Excel sheet Column Title

时间:2015-11-04 23:07:15      阅读:282      评论:0      收藏:0      [点我收藏+]

package cn.edu.xidian.sselab;
/**
 * title:Excel sheet Column Title
 * content:
 * Given a positive integer, return its corresponding column title as appear in an Excel sheet.
 * For example:
 *
 *  1 -> A
 *  2 -> B
 *  3 -> C
 *  ...
 *  26 -> Z
 *  27 -> AA
 *  28 -> AB
 */
public class ConvertToTitle {

    
    //自己想的,这种方法虽然对,但是代码量比较多,看上去比较麻烦
    //这里分两种情况来考虑的,(1)26的整数倍(2)不是26的倍数
    //(1)当是26的整数倍的时候,还要考虑商是1的情况,不进位,商大于1时才进行进位操作
    //(2)当不是26的整数倍的时候
    public static String converToTitle(int n){
        String title = "";
        int remainder;
        if(n % 26 == 0){
            while(n % 26 == 0){        
                title = (char) ‘Z‘ + title;
                n = n / 26;
            }
            if(n > 1){
                title = (char) (n - 2 + ‘A‘) + title;
            }
        }else{
            while(n > 26){        
                remainder = n % 26;
                n = n / 26;
                title = (char) (remainder - 1 + ‘A‘) + title;        
            }
            title = (char) (n - 1 + ‘A‘) + title;
        }
        return title;
    }

    
    //参考的比较好的方法,唯一的问题是:满足26的倍数,发生进位操作,26的倍数个数就减一
    public String convertToTitles(int n){
        StringBuffer sb = new StringBuffer();
        int remainder;
        while(n > 0){
            remainder = n % 26;
            n = n / 26;
            if(remainder != 0){
                sb.append((char)(remainder - 1 + ‘A‘));
            }else{
                sb.append(‘Z‘);
                n--;
            }
        }
        return sb.reverse().toString();
        
    }
}

Excel sheet Column Title

原文:http://www.cnblogs.com/wzyxidian/p/4937576.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!