A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

字符串中!有方法toUpperCase(),和toLowerCase(),
但如何去判断字符串是大写还是小写!,String类没有判断字符串大小写的方法。
如何去实现该功能!求大神解释!

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

6 个回复

倒序浏览
分别对每个字符对应的asc码来判断吧
看了看toUpperCase(),和toLowerCase()的源代码
toUpperCase()方法中只有一行代码
toLowerCase()却有好几十行,看不懂啊,不懂,大致用的就是asc码判断的

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1

查看全部评分

回复 使用道具 举报
可以用这个方法
  1. public static boolean isAcronym(String str){
  2.       for(int i = 0; i < str.length(); i++){
  3.            char c = str.charAt(i);
  4.            if (!Character.isLowerCase(c)){
  5.                 return false;
  6.            }
  7.       }
  8.       return true;
  9. }
复制代码
在判断的时候方法是多样的,可以判断对比是否是大写或小写ASCII码区间内,也可以用正则表达式等,这个倒不要紧

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1

查看全部评分

回复 使用道具 举报
下面是我以前写的一端代码:
      就是将String转换成char数组,循环遍历,然后通过是否在'a'和'z'之间来判断小写
                                                                       'A'和'Z'来判断是否是大写
                            char[] c = str.toCharArray();
                                // 循环遍历字符数组
                                for (int i = 0; i < c.length; i++) {
                                    //判断是否是小写字母
                                        if ('a' <= c && c <= 'z') {
                                                // 将小写转换成大写
                                                c = (char) (c + ('A' - 'a'));
                                        } else if ('A' <= c && c <= 'Z') {
                                                // 将大写转换成小写
                                                c += ('a' - 'A');
                                        }
                                }

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1

查看全部评分

回复 使用道具 举报
你的说法不是很正确,字符传要是比较大小,是和字符串比较才能比较大小,但是没有字符串是大小写的,
但是你要是说把字符串分割成字符数组,然后比较字符数组中的元素才有大小写,字符才有大小写!
希望你能理解!
回复 使用道具 举报
//a-z 97-122  A-B 65-90
class Demo{
        public static void main(String[] args) {
                String s1="abc";
                String s2="ABC";
                getCount(s1);
                getCount(s2);
        }
       
        private static void getCount(String s){
                //转字符数组
                char[] ch = s.toCharArray();
                //遍历数组
                for (int i = 0; i < ch.length; i++) {
                        if(ch[i]>=97 && ch[i]<=122){
                                System.out.println(ch[i]+"是小写字母");
                        }else{
                                System.out.println(ch[i]+"是大写字母");
                        }
                }
               
        }
}

输出结果:a是小写字母--b是小写字母--c是小写字母--A是大写字母--B是大写字母--C是大写字母--
记住a-z相对应的97-122  A-B相对应是65-90  然后进行判断就可以啦 希望对你有用
回复 使用道具 举报
本帖最后由 白堇翎 于 2013-8-9 22:33 编辑

String str = "需要判断的字符串"
Stirng regex = "^[a-z]+$"//判断是否全部是小写字母
System.out.println(str.matches(regex));//打印结果

用正则表达式会比较简单
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马