2014-09-06 173 views
-5

使用將單個大寫字母轉換爲小寫字母的主要方法編寫名爲CaseConverter的程序。你必須聲明一個char變量來保存小寫字母。將大寫字母轉換爲小寫字母

public class CaseConverter { 
    public static void main (String [] args){ 

    int offset = 'a' - 'A'; 

    char temp = 'X'; // or any other uppercase alphabet 
    System.out.println("uppercase: " + temp); 

    // insert code here 

    System.out.println("lowercase: " + temp); 

    }  
} 
+0

我不明白 「偏移」。如何抵消和溫度相關> – wewewe123 2014-09-06 09:24:12

+3

不知何故,我覺得包含的代碼是由老師提供的。 – Kayaman 2014-09-06 09:30:30

+0

Unicode使用的Java字符集有1039個大寫字符,其中27個沒有對應的小寫字符。編程的關鍵部分是避免不正確的假設。 – 2014-09-06 17:03:00

回答

0

大寫字母的代碼「A」是67和小寫字母的代碼爲「a」是97。所以,在偏移量是32.因此,爲了任何大寫字母轉換爲小寫字母你必須添加32即抵消它。 編輯:

public class CaseConverter{ 
    public static void main(String args[]){ 
     int offset = 'a' - 'A'; 
     int temp = 'X'; // or any other uppercase alphabet 
     System.out.println("uppercase: " + (char)temp); 
     temp = temp + offset; 
     System.out.println("lowercase: " + (char)temp); 
    } 
} 

編輯:由於您的臨時數據類型爲char,那麼這將工作

public class CaseConverter{ 
    public static void main(String args[]){ 
     int offset = 'a' - 'A'; 
     char temp = 'X'; // or any other uppercase alphabet 
     System.out.println("uppercase: " + temp); 
     temp = (char)((int)temp + offset); 
     System.out.println("lowercase: " + temp); 
    } 
} 
+0

我的臨時數據類型是char – wewewe123 2014-09-06 09:43:04

+0

非常感謝!你解決了我的問題! – wewewe123 2014-09-06 13:22:27

0

使用java字符類將大寫字符轉換爲小寫字符的靜態方法:>Character.toLowerCase(c);

+0

令人驚訝的是,即使輸入是大寫字母,結果也不一定是小寫字母!這是輸入驗證需要候選輸出的場景。 – 2014-09-06 21:14:58

0

如果您查看ASCII table,可以輕鬆解答您的問題。當您編寫a時,int變量將保存字符a的ASCII值。

P這個字母的ASCII值爲例,它是80.你如何得到p的ASCII值是112?我不會給你完整的解決方案,但這應該會幫助你開始*

* 'a' - 'A'是32

0
import java.io.*; 

public CaseConverter{ 
    public static void main(String args[]){ 
    char temp = 'X'; // or any other uppercase alphabet 
    System.out.println("uppercase: " + temp); 
    System.out.println(temp.toUpperCase()); 
    } 
} 
0

偏移:在ASCII碼 小寫字母遵循由32位大寫,因爲我可以請記住,如果你有一個大寫字母'X',那麼你通過大寫和小寫字母之間的差異來得到它的整數值。

char ch = 'x'; //x is lower case letter int diff = (int)'a' - (int)'A'; //Difference between lower and upper ch = (int)ch - diff; //now you get the lower case

1

這可以用於殼體conersion

public char toLowercase(char c) { 
    int offset = 'a' - 'A'; 
    if (c >= 'A' && c <= 'Z') { 
     return (char) (c + offset); 
    } 
    return c; 
} 

public char toUppercase(char c) { 
    int offset = 'a' - 'A'; 
    if (c >= 'a' && c <= 'z') { 
     return (char) (c - offset); 
    } 
    return c; 
} 
相關問題