码迷,mamicode.com
首页 > 其他好文 > 详细

168. Excel Sheet Column Title

时间:2016-06-05 06:33:51      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

    /*
     * 168. Excel Sheet Column Title 
     * 12.12 by Mingyang
     *  一定要注意z为0的情况!!!
     */
    public static String convertToTitle(int n) {
        if (n <= 0)
            return " ";
        StringBuffer sb = new StringBuffer();
        while (n > 0) {
            int temp = n % 26;
            n = n / 26;
            if (temp == 0) {
                sb.insert(0, ‘Z‘);
                n--;
                continue;
            }
            sb.insert(0, Character.toChars(64 + temp));
        }
        return sb.toString();
    }
    // 网上简短写法,这里就避免了对26的讨论,因为把26-1=25以后,就可以直接加了
    public static String convertToTitle1(int n) {
        StringBuilder sb = new StringBuilder();
        while (n > 0) {
            n--;
            char ch = (char) (n % 26 + ‘A‘);
            n /= 26;
            sb.insert(0,ch);
        }
        return sb.toString();
    }
    /*
     * 那么关于进制问题,我们从26进制转换成10进制又如何解决呢?请看这道题目的想反问题
     */
    public int titleToNumber(String s) {
        int result = 0;
        for (int i = 0; i < s.length(); i++) {
            result = result * 26 + 1 + s.charAt(i) - ‘A‘;
        }
        return result;
    }

 

168. Excel Sheet Column Title

标签:

原文地址:http://www.cnblogs.com/zmyvszk/p/5560017.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!