【问题标题】:How to convert input char to uppercase automatically in Java如何在 Java 中自动将输入字符转换为大写
【发布时间】:2014-02-04 12:08:55
【问题描述】:

我正在使用 Scanner 类来获取输入,并希望在显示时将输入转换为大写字母。这是我的代码

Scanner input = new Scanner(System.in);
System.out.print("Enter a letter: ");
char c = input.next().charAt(0);
Character.toUpperCase(c);

由于我已将其转换为大写,但输出类似于

input: a
c = A;
output: Enter a letter: a

PS:字母“a”是我在终端输入的

但是我希望它显示为大写字母。我怎样才能改变它?

【问题讨论】:

  • 你没有打印出来...
  • @SotiriosDelimanolis OP 想要将 tty 自己的输入字符回显大写。
  • @BoristheSpider tty 代表什么?他也没有(向我们展示他已经)打印了c :)
  • @SotiriosDelimanolis 来自 TeleTYpewriter - 用于指代虚拟终端。关键是当我在我的 tty 中输入时,tty 会回显我输入的内容(除非 echo 关闭)——这就是我认为 OP 想要改变的。

标签: java char uppercase


【解决方案1】:

这是一个如何将字符更改为大写的示例。

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

【讨论】:

    【解决方案2】:

    toUpperCase method 不会改变char 的值(它不能);它返回大写的char。改变

    Character.toUpperCase(c);
    

    c = Character.toUpperCase(c);
    

    更新

    更新后的问题现在表明大写字符将在输入时在输入时打印。 Java 无法做到这一点,因为 Java 不控制操作系统如何将用户输入回显到屏幕上。我上面的解决方案只会产生额外的输出,即使它是大写的。

    【讨论】:

    • 不确定这是问题所在。 OP 希望 tty 上的回显自动大写字符键入时
    • 好的,非常感谢。但是我仍然想知道更改代码后输入的显示。
    • @matchaGerry 遗憾的是,这在 Java 中是不可能的。
    • @matchaGerry TTY 部分在您的问题中并不明显。请更新问题。
    • @rgettman 好的,我已经更新了。无论如何,感谢您的回答,这是我的代码中的一个问题。
    【解决方案3】:

    由于java是传值,所以需要使用返回值。要么直接打印Character.toUpperCase(c),要么设置为var

    【讨论】:

      【解决方案4】:

      System.out.println(Character.toUpperCase(c));

      【讨论】:

        猜你喜欢
        • 2012-05-06
        • 1970-01-01
        • 2018-06-07
        • 2010-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        相关资源
        最近更新 更多