public static void main(String[] args) {
System.out.println(getColumn("AA"));
}
private static int getNumberIndex(String s)
{
// Find the position of the first number
boolean numberFound = false;
int pos = s.lastIndexOf(sheetInd) + 1;
char c = '\0';
while (!numberFound && pos < s.length() )
{
c = s.charAt(pos);
if (c >= '0' && c <= '9')
{
numberFound = true;
}
else
{
pos++;
}
}
return pos;
}
private static final char sheetInd = '!';
private static final char fixedInd='$';
public static int getColumn(String s)
{
int colnum = 0;
int numindex = getNumberIndex(s);
String s2 = s.toUpperCase();
int startPos = s.lastIndexOf(sheetInd) + 1;
if (s.charAt(startPos) == fixedInd)
{
startPos++;
}
int endPos = numindex;
if (s.charAt(numindex - 1) == fixedInd)
{
endPos--;
}
for (int i = startPos; i < endPos ; i++)
{
if (i != startPos)
{
colnum = (colnum+1) * 26;
}
colnum += (int) s2.charAt(i) - (int) 'A';
}
return colnum;
}