Excel Sheet Column Title

Excel Sheet Column Title

问题:

Given a positive integer, return its corresponding column title as appear in an Excel sheet.

思路:

  进制访问问题

我的代码:

public class Solution {
    public String convertToTitle(int n) {
        StringBuffer sb = new StringBuffer();
        if(n <= 0)  return sb.toString();
        
        while(n != 0)
        {
            sb.append(getChar((n - 1)%26));
            n = (n - 1)/26;
        }
        return sb.reverse().toString();
    }
    public char getChar(int num)
    {
        return (char)('A' + num);
    }
}
View Code

他人代码:

public class Solution {
    public String convertToTitle(int n) {
        StringBuilder result = new StringBuilder();
        while(n>0)
        {
            result.append((char) ((n-1)%26 + (int)'A'));
            n = (n-1)/26;
        }
        return result.reverse().toString();
    }
}
View Code

学习之处:

  • 在Java里 char是两个字节,int是四个字节,所以char转int要用上强制转换,经常忘记这一点,已经有好几次warning了。
  • 平常是用s += part 未曾想 s = part + s 这样便可以轻松的实现reverse了,学习了,具体实现在他人的代码里面有。
原文地址:https://www.cnblogs.com/sunshisonghit/p/4338156.html