I am using a Scanner class to get the input and want to convert the input to uppercase letter when display it. This is my code
Scanner input = new Scanner(System.in);
System.out.print("Enter a letter: ");
char c = input.next().charAt(0);
Character.toUpperCase(c);
Since I have convert it to uppercase, but the output is like
input: a
c = A;
output: Enter a letter: a
PS: The letter "a" is what I typed in the terminal
However I want to it display as an uppercase one. How can I change it?
The toUpperCase
method doesn't change the value of the char
(it can't); it returns the uppercased char
. Change
Character.toUpperCase(c);
to
c = Character.toUpperCase(c);
UPDATE
The updated question now indicates that the uppercased characters are to be printed as they're typed. Java cannot do that, because Java doesn't control how the O/S echoes user input to the screen. My solution above would only produce additional output, even if it is uppercased.
System.out.println(Character.toUpperCase(c));
Since, java is pass by value, you need to use the return value. Either print Character.toUpperCase(c)
directly or set it to some var
.
Here Is An Example Of How You Can Change A Character To UpperCase.
char ch;
System.out.println("Input Characters:");
ch = (char) System.in.read();
System.out.println("Character Is: " + ch);
sc.nextLine();
System.out.println("Upper Case: " + Character.toUpperCase(ch));