黑马程序员技术交流社区

标题: 关于字符串中如何判断是大小写问题? [打印本页]

作者: 张玉建    时间: 2013-8-9 14:05
标题: 关于字符串中如何判断是大小写问题?
字符串中!有方法toUpperCase(),和toLowerCase(),
但如何去判断字符串是大写还是小写!,String类没有判断字符串大小写的方法。
如何去实现该功能!求大神解释!

作者: 薛淑凯    时间: 2013-8-9 14:57
分别对每个字符对应的asc码来判断吧
看了看toUpperCase(),和toLowerCase()的源代码
toUpperCase()方法中只有一行代码
toLowerCase()却有好几十行,看不懂啊,不懂,大致用的就是asc码判断的
作者: 崔一恒    时间: 2013-8-9 16:24
可以用这个方法
  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码区间内,也可以用正则表达式等,这个倒不要紧
作者: panningwjr    时间: 2013-8-9 17:32
下面是我以前写的一端代码:
      就是将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');
                                        }
                                }


作者: 杨增坤    时间: 2013-8-9 18:17
你的说法不是很正确,字符传要是比较大小,是和字符串比较才能比较大小,但是没有字符串是大小写的,
但是你要是说把字符串分割成字符数组,然后比较字符数组中的元素才有大小写,字符才有大小写!
希望你能理解!
作者: 黑马王晓明    时间: 2013-8-9 22:08
//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:29
本帖最后由 白堇翎 于 2013-8-9 22:33 编辑

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

用正则表达式会比较简单





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2