2015-09-14 53 views
-5

在excel行中,數字從'1'開始並繼續,列號(id)從A開始並繼續,如A,B,.. Z,AA,AB。 ..AZ,... ABX,... 現在,如果我們將輸入作爲'A'輸出應該是1, ,我們將輸入作爲'Z'輸出傳遞給26,如果我們通過任何輸入像AX,BCS)Java應該返回相應的列號。 有人能幫助我得到Java中的算法嗎?如何通過在Java中傳遞列名來獲得列號

回答

0

看看CellReference POI CellReference的API。 convertColStringToIndex()應該返回基於零的索引。

0

你可以簡單地踐踏作爲具有26基於此基礎上的數值系統,你可以簡單地使用數學的正確方法10系統這樣確定在基地的新值:

public class Test 
{ 
    private static final int sub = 64; 
    private static final int base = 26; 

    public static void main(String[] args) 
    { 
     System.out.println(getNumber("AD")); 
    } 

    private static int getNumber(String input) { 
     int sum = 0; 
     for(int i = 0;i<input.length();++i) { 
      int representation = input.charAt(i); 
      representation -= Test.sub; 
      int value = (int) (representation * Math.pow(Test.base, input.length()-i-1)); 
      sum += value; 
     } 
     return sum; 
    } 
} 
相關問題