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");
}
}
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);