鍍金池/ 問答/Java  HTML/ java字元小寫變大寫的練習(xí)

java字元小寫變大寫的練習(xí)

public class CAXA {
    public static void main(String[] args) {
        new CAXA().run();
    }
    public void run(){
        String str = "hello world";
        str = uppercaseString(str);
        System.out.println(str);
    }
    public  String uppercaseString(String string) {
        String result = "";
        for (int i = 0; i < string.length(); i++) {
            char c = string.charAt(i);
            if (c >= 'a' && c <= 'z') {
                c -= 'a' - 'A';
            }
            result += c;
        }
        return result;
    }
}

各位大牛,小弟初學(xué)java,假如問的問題比較幼稚望各位大牛多多見諒,以上程序是一個java字元小寫變大寫的程序,但是弟弟看不懂,望各位大牛給予講解,弟弟在這里多謝了。

回答
編輯回答
有點(diǎn)壞

a的unicode code為97,A為65。因此大小寫字母unicode的差為32。你這么修改代碼是不會有問題的

          if (c >= 'a' && c <= 'z') {
                c -= 32 ;
            }

不過不太好,這在編程中被稱為魔術(shù)變量。
最外面的一層for,即:

      for (int i = 0; i < string.length(); i++) {

是用來遍歷String的,String由char數(shù)組組成。

 if (c >= 'a' && c <= 'z') {

用來判斷是否是字母,不然會轉(zhuǎn)出一些奇怪的結(jié)果。最后把拼接好的result返回。

順帶一提,String自帶轉(zhuǎn)換大小寫的函數(shù)。

        str.toUpperCase(); //轉(zhuǎn)換大寫
        str.toLowerCase(); //轉(zhuǎn)換小寫
2017年1月10日 13:33
編輯回答
尐潴豬

Character.toUpperCase()

2018年3月1日 00:47
編輯回答
墻頭草

string.length是什么東西 看不懂 那位大神給我解答一下唄

2017年9月30日 15:49
編輯回答
陪我終

這個主要就是判斷是不是a~z范圍,是就變大寫,反之,也是一樣,string.length表示字符串的長度,

2017年6月21日 09:44