Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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));
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top