package org.mapfish.print; import java.util.Stack; /** * Used to convert an integer index to an alpha index. * Index in: A..Z,AA..ZZ,AAA... */ public class HumanAlphaSerie { public static String toString(int number) { if (number <= 0) { return ""; } // We want to start with A (1) number += 1; Stack<Integer> stack = new Stack<Integer>(); while (number > 26) { int remain = number % 26; if (remain == 0) { remain = 26; } stack.add(remain); number = number - remain; number = number / 26; } if (number != 0) { stack.add(number); } return convertToString(stack); } private static String convertToString(Stack<Integer> array) { StringBuilder sb = new StringBuilder(); while (!array.isEmpty()) { int number = array.pop(); sb.append(numberToChar(number)); } return sb.toString(); } private static char numberToChar(int number) { if (number > 26 || number < 0) { return '\0'; } char c = (char)('A' + number - 1); return c; } }