fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. rowColFromA1("C5");
  13. rowColFromA1("$AB123456789");
  14. rowColFromA1("$C$5");
  15. rowColFromA1("C$5");
  16. rowColFromA1("$C5");
  17. rowColFromA1("$D$5");
  18. rowColFromA1("D$5");
  19. rowColFromA1("$D5");
  20. rowColFromA1("$aC$5");
  21. rowColFromA1("$c$5");
  22. rowColFromA1("cBa$99");
  23. rowColFromA1("cBa$");
  24. rowColFromA1("99");
  25. rowColFromA1("$K$34");
  26. }
  27.  
  28. public static int[] rowColFromA1(String a1ref) {
  29. int ii=0, jj, colVal=0;
  30. char[] cellAddr = a1ref.toCharArray();
  31. int[] rowCol = new int[2];
  32. int endOfCol;
  33.  
  34. try {
  35. while(cellAddr[ii] >= 'A' || cellAddr[ii] == '$' ) { ii++;};
  36. endOfCol = (cellAddr[ii-1] == '$') ? ii-1 : ii;
  37. { rowCol[0] = 1; rowCol[1] = 1; return rowCol;}
  38. // skip $ of col, if any
  39. jj = (cellAddr[0] == '$') ? 1 : 0;
  40.  
  41.  
  42. // ii now points to first character of row address
  43. for(;jj<endOfCol;jj++) colVal = 26*colVal + Character.toUpperCase(cellAddr[jj]) -'A' + 1;
  44. rowCol[1] = (colVal > 0) ? colVal : 1;
  45.  
  46. int rowVal = 0;
  47. for (;ii < cellAddr.length; ii++)
  48. rowVal = rowVal * 10 + cellAddr[ii] - '0';
  49.  
  50. rowCol[0] = (rowVal > 0) ? rowVal : 1;
  51. System.out.println("R"+ rowCol[0]+"C"+rowCol[1]);
  52.  
  53. return rowCol;
  54. }
  55.  
  56. }
Success #stdin #stdout 0.07s 380224KB
stdin
Standard input is empty
stdout
R5C3
R123456789C28
R5C3
R5C3
R5C3
R5C4
R5C4
R5C4
R5C29
R5C3
R99C2081
R34C11