2011-12-23 59 views
-1

我一直在努力嘗試,並且沒有辦法。不使用toUpperCase()方法將小寫字母傳遞給大寫字母

我想花小寫字母大寫等價。

我知道並知道如何使用toUpperCase()方法,但是我希望沒有它。

這是我的失敗代碼:

import java.util.Scanner; 

public class ConvertLetters { 

    public static void main(String[] args) { 
     Scanner stdin = new Scanner(System.in); 
     System.out.print("enter a lower case letter"); 
     char letter = stdin.nextLine(); 
     int letter2 = 'A' + (letter - 'a'); 
     System.out.println("and we will refund your letter capitalized"); 
     System.out.print("Your letter: " + letter); 
     System.out.print("upper case equates to:"); 
     System.out.print(letter2); 
    } 
} 
+0

我想你只對ASCII轉換感興趣呢? – Perception 2011-12-23 17:08:23

回答

2

你想完成一個char

char letter = stdin.nextLine().charAt(0); 
char letter2 = (char) ('A' + (letter - 'a')); 

char letter2 = (char) (letter - 32); 
+0

另外,他應該使用nextInt()而不是nextLine()。 – aishwarya 2011-12-23 17:11:34

+0

你說得對,他的代碼不會編譯。 – 2011-12-23 17:52:15

1

我看到兩個問題與此代碼。首先,您分配nextLine(),這是一個字符串。你可能想要類似

char letter = stdin.nextLine().charAt(0); 

改爲。其次,您打印int,嘗試

System.out.print((char)letter2); 

有了這些變化,我覺得你的代碼會給你更好的結果。

自然,對於非ASCII字符無論如何都不適用。

+0

是的!,很多很多謝謝!,花了我3天才得到解決方案 – 2011-12-23 17:18:56