java字元小写变大写的练习

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

各位大牛,小弟初学java,假如问的问题比较幼稚望各位大牛多多见谅,以上程序是一个java字元小写变大写的程序,但是弟弟看不懂,望各位大牛给予讲解,弟弟在这里多谢了。

阅读 3.7k
4 个回答

a的unicode code为97,A为65。因此大小写字母unicode的差为32。你这么修改代码是不会有问题的

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

不过不太好,这在编程中被称为魔术变量。
最外面的一层for,即:

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

是用来遍历String的,String由char数组组成。

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

用来判断是否是字母,不然会转出一些奇怪的结果。最后把拼接好的result返回。

顺带一提,String自带转换大小写的函数。

        str.toUpperCase(); //转换大写
        str.toLowerCase(); //转换小写

Character.toUpperCase()

这个主要就是判断是不是a~z范围,是就变大写,反之,也是一样,string.length表示字符串的长度,

新手上路,请多包涵

string.length是什么东西 看不懂 那位大神给我解答一下呗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题