2014-01-15 69 views
2

我正在使用Scanner類來獲取輸入,並希望在顯示時將輸入轉換爲大寫字母。這是我的代碼如何在Java中自動將輸入字符轉換爲大寫

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」是我在終端上鍵入

然而我希望它顯示爲大寫字母。我該如何改變它?

+1

你沒有打印...... –

+0

http://stackoverflow.com/questions/3696441/converting-a-char-to-uppercase – TypeIA

+0

@SotiriosDelimanolis的可能重複的OP要大寫TTY的自己的輸入字符的回聲。 –

回答

5

toUpperCase method不會更改char(它不能)的值;它返回大寫char。更改

Character.toUpperCase(c); 

c = Character.toUpperCase(c); 

UPDATE

現在的更新問題,指示大寫的字符被印刷爲他們輸入。 Java不能做到這一點,因爲Java不能控制O/S如何迴應用戶輸入到屏幕上。上面的解決方案只會產生額外的輸出,即使它是大寫的。

+0

不知道這是問題所在。 OP希望tty上的echo可以自動輸入大寫字母,因爲它們是鍵入的。 –

+0

是的,非常感謝。但是我仍然想知道更改我的代碼後顯示輸入。 – matchaGerry

+0

@BoristheSpider你是對的。這是我想問的。 – matchaGerry

1

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

0

因爲,java是按值傳遞的,所以需要使用返回值。直接打印Character.toUpperCase(c)或將其設置爲var

0

這裏是你如何改變一個字符到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)); 
相關問題