/** * Entry * * @param args */ public static void main(String[] args) { Prompter prompter = new Prompter(System.in); // input String inputNumber = prompter.prompt("Enter the number: "); // remove spaces inputNumber = inputNumber.replaceAll(" ", ""); // Not supporting unusual numbers if (!(inputNumber.length() == 10 || inputNumber.length() == 11)) { System.out.println("Unsupported number format"); System.exit(0); } // conver the inputted string to lowercase, then to a char array char[] charArray = inputNumber.toLowerCase().toCharArray(); StringBuilder newNumber = new StringBuilder(); for (int i = 0; i < charArray.length; i++) { // Use switch to determine which number to use // Probably a more efficient way to do this (if / elseif ranges?) switch (charArray[i]) { case 'a': case 'b': case 'c': charArray[i] = '2'; break; case 'd': case 'e': case 'f': charArray[i] = '3'; break; case 'g': case 'h': case 'i': charArray[i] = '4'; break; case 'j': case 'k': case 'l': charArray[i] = '5'; break; case 'm': case 'n': case 'o': charArray[i] = '6'; break; case 'p': case 'q': case 'r': case 's': charArray[i] = '7'; break; case 't': case 'u': case 'v': charArray[i] = '8'; break; case 'w': case 'x': case 'y': case 'z': charArray[i] = '9'; break; } // Append the number newNumber.append(charArray[i]); } // Output the builder's string to a variable, this number has no spaces // ex. 18009981235 String numberToDialNoSpaces = newNumber.toString(); // New builder that will have the spaces StringBuilder numberToDial = new StringBuilder(); // If ten digits, format appropriately if (numberToDialNoSpaces.length() == 10) { numberToDial.append( numberToDialNoSpaces.substring(0, 3)); // First 3 digits (index 0 to index 2) numberToDial.append(" "); // Space after the first 3 numberToDial.append(numberToDialNoSpaces.substring(3, 6)); // Next 3 (index 3 to index 5) numberToDial.append(" "); // Space after the next 3 numberToDial.append(numberToDialNoSpaces.substring(6, 10)); // Last 4 (index 6 to index 9) // output System.out.println("Number to dial: " + numberToDial.toString()); } // If 11, has international code for US. // Sorry, don't support others else if (numberToDialNoSpaces.length() == 11) { numberToDial.append(numberToDialNoSpaces.substring(0, 1)); numberToDial.append(" "); numberToDial.append(numberToDialNoSpaces.substring(1, 4)); numberToDial.append(" "); numberToDial.append(numberToDialNoSpaces.substring(4, 7)); numberToDial.append(" "); numberToDial.append(numberToDialNoSpaces.substring(7, 11)); System.out.println("Number to dial: " + numberToDial.toString()); } }