Search code examples
javatranslationalphanumericletter

How do I allow any character that is not a letter of the alphabet to be left as is in java


I coded this program in java where when a user inputs a text in letter format it translates it to number format but how do I code the program in a way that when a user inputs something other than an alphabet it is left as is. For example, If a user enters "get.food" the output would be "438.3663" with the dot after "get" being left as it is. But what happens in my program is if a user enters "get.food" the output would be "4383663", it removes the dot after get. I don't understand why?

Here's my code. Thanks in advance

import java.util.Scanner;

 public class Transalate  {
     
  public static void main(String[] args) {
      
      String alphaNumber;
      
      String translation="";

    Scanner kb = new Scanner(System.in);

    System.out.println("Please Enter an Alphabet to be Translated ");

    alphaNumber = kb.next();

    alphaNumber = alphaNumber.toUpperCase();

       while(!alphaNumber.equals("STOP")){
        for(int i=0; i<alphaNumber.length();i++)
        {
            if(alphaNumber.charAt(i)=='A')
                translation=translation+"2";
                else if(alphaNumber.charAt(i)=='B')
                translation = translation+"2";
                else if(alphaNumber.charAt(i)=='C')
                translation = translation+"2";
                else if(alphaNumber.charAt(i)=='D')
                translation = translation+"3";
                else if(alphaNumber.charAt(i)=='E')
                translation = translation+"3";
                else if(alphaNumber.charAt(i)=='F')
                translation = translation+"3";
                else if(alphaNumber.charAt(i)=='G')
                translation = translation+"4";
                else if(alphaNumber.charAt(i)=='H')
                translation = translation+"4";
                else if(alphaNumber.charAt(i)=='I')
                translation = translation+"4";
                else if(alphaNumber.charAt(i)=='J')
               translation = translation+"5";
                else if(alphaNumber.charAt(i)=='K')
                translation = translation+"5";
                else if(alphaNumber.charAt(i)=='L')
                translation = translation+"5";
                else if(alphaNumber.charAt(i)=='M')
                translation = translation+"6";
                else if(alphaNumber.charAt(i)=='N')
                translation = translation+"6";
                else if(alphaNumber.charAt(i)=='O')
                translation = translation+"6";
                else if(alphaNumber.charAt(i)=='P')
                translation = translation+"7";
                else if(alphaNumber.charAt(i)=='Q')
                translation = translation+"7";
                else if(alphaNumber.charAt(i)=='R')
                translation = translation+"7";
                else if(alphaNumber.charAt(i)=='S')
                translation = translation+"7";
                else if(alphaNumber.charAt(i)=='T')
                translation = translation+"8";
                else if(alphaNumber.charAt(i)=='U')
                translation = translation+"8";
                else if(alphaNumber.charAt(i)=='V')
                translation = translation+"8";
                else if(alphaNumber.charAt(i)=='W')
                translation = translation+"9";
                else if(alphaNumber.charAt(i)=='X')
                translation = translation+"9";
                else if(alphaNumber.charAt(i)=='Y')
                translation = translation+"9";
                else if(alphaNumber.charAt(i)=='Z')
                translation = translation+"9";
               
            }
            System.out.println(translation);
            
            translation="";
         
         
        
        System.out.println("Enter Another Alphabet Or Enter Stop to End");
         alphaNumber = kb.next();

        alphaNumber = alphaNumber.toUpperCase();
    }
        System.out.println("The End");

  }
}
 

Solution

  • Add an else clause where you will simply copy the character as it is. See below -

    // Existing code
    else if(alphaNumber.charAt(i)=='Y')
        translation = translation+"9";
    else if(alphaNumber.charAt(i)=='Z')
        translation = translation+"9";
    // Added else clause
    else
        transation = translation + alphaNumber.charAt(i);