public class StringCounter { public static void main(String[] args) { if (args!=null) { StringCounter stringCounter= new StringCounter(); System.out.println(stringCounter.incrementString(args[0])); } else { System.out.println("usage: java StringCounter "); } } String incrementString(String string) { char[] cArray = string.toCharArray(); for (int n = 1; n < cArray.length+1; n++) { // 122 upperbound , equals to "z" in java Primitive character types if (cArray[cArray.length-n]==122) { // if necessarry, add digit if (cArray.length-n==0) { // increment array size cArray= new char[cArray.length+1]; // reset counter lowest bound , eg. aaa for (int i = 0; i < cArray.length; i++) { // 97 lowerbound , equals to "a" in java Primitive character types cArray[i]=97; } break; } else { cArray[cArray.length-n]=97; } } else { ++cArray[cArray.length-n]; break; } } return String.valueOf(cArray); } }