1. 程式人生 > >在Excel2003中,用A表示第1列,B表示第2列。。。Z表示第26列,AA表示第27列,AB表示第28列。。。以此類推。請寫出一個函式,輸入用字母表示的列號編碼,輸出它是第幾列

在Excel2003中,用A表示第1列,B表示第2列。。。Z表示第26列,AA表示第27列,AB表示第28列。。。以此類推。請寫出一個函式,輸入用字母表示的列號編碼,輸出它是第幾列

這道題其實就是26進位制字串轉十進位制的題,由於A到Z在ASCii中是連續的

補充知識點:

在ASCII碼中,我們要記住幾個關鍵的字元!

0:48

A:65

a:97

(1)數字在前,大寫字母其後,最後是小寫字母。

(2)小寫字母和大寫字母差32。

下面是簡單的模擬過程

public int numberTransform2(String str) 

{  

char[] strArray = str.toCharArray(); 

int num = 0;   

for(int i =0; i < strArray.length; i++) 

  {  

   num = num * 26 + ((int)(strArray[i] -'1') +1); 

 }             

 return num;  

}