题目:在Excel2003中,用A表示第1列,B表示第2列......Z表示第26列,AA表示第27列,AB表示第28列......以此类推。请写出一个函数,输入用字母表示的列号编码,输出它是第几列。
思路:A-Z看作26进制数,就是把26进制数转换为十进制。
java实现:
public static int litterToListNumber(String str) {
char[] strArr=str.toCharArray(); //将字符串转换为字符数组,但是字符串最高位在数组最低位
int length=strArr.length; //字符数组长度
if(length<=0) return 0;
int sum=0;
int exp=0;//记录次方数
for(int i=length-1;i>=0;i--) {
int num=strArr[i]-'A'+1; //当前i位置字母代表的数字
sum+=num*(int)(Math.pow(26,exp));
exp++;
}
return sum;
}