Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to limit user input to a Single Character??

981014Dec 20 2012 — edited Dec 20 2012
// Hi, i would like to ask on how can i limit my user input to a Single Character??, here is my code.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import java.util.Scanner;
public class calc_scan {
public static void main(String [] args)
{
Scanner input = new Scanner(System.in);
double num1=0,num2=0, ans=0;
char choice2;
System.out.println("What would you like to do? ");
System.out.println("A - Addition");
System.out.println("S - Subtraction");
System.out.println("M - Multiplication");
System.out.println("D - Division");


System.out.print("Enter Choice: ");
choice2 = input.next().charAt(0);


if(choice2=='A' || choice2=='a') //Addition
{
System.out.print("Enter first number: ");
num1 = input.nextDouble();
System.out.print("Enter second number: ");
num2 = input.nextDouble();

ans = num1+num2;
System.out.print("The answer is "+ans);
}
else if(choice2=='S' || choice2=='s') //Subtraction
{
System.out.print("Enter first number: ");
num1 = input.nextDouble();
System.out.print("Enter second number: ");
num2 = input.nextDouble();

ans = num1-num2;
System.out.print("The answer is "+ans);
}
else if(choice2=='M' || choice2=='m') // Multiplication
{
System.out.print("Enter first number: ");
num1 = input.nextDouble();
System.out.print("Enter second number: ");
num2 = input.nextDouble();

ans = num1*num2;
System.out.print("The answer is "+ans);
}
else if(choice2=='D' || choice2=='d') //Division
{
System.out.print("Enter first number: ");
num1 = input.nextDouble();
System.out.print("Enter second number: ");
num2 = input.nextDouble();

if (num2==0)
{
System.out.println("Cannot be divide by Zero");
}
else
{
ans = num1/num2;
System.out.print("The answer is "+ans);
}

}
else
{
System.out.println("Invalid Option");
}

}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

In this code, whenever i tried to type a String of characters like ("Annnnnnnnnn") it is still follows the operation for Addition, what i would like to do is that the user can only enter a Single Character and not a String, if the user tried to enter the required character for the if else condition plus a string of characters , the system should not accept it.


example
user tried to input a string of characters like "Annnn"

the output should be "Invalid"

what would i like is that, the if else condition will only work if the user tried to input a Single Only Character

example
input: "A"

the output should be the answer for addition

now if the user tried to input "Annn"

the output should be invalid.....
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 17 2013
Added on Dec 20 2012
8 comments
965 views