題目:在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;
}