在java里如何判断输入的是大写字母还是小写字母?

时间:2022-02-14 09:16:01
在java里如何判断输入的是大写字母还是小写字母?
public class  two
{
public static void main(String[] args) 
{
if(args.length!=0){
for(int i=0;i<args.length;i++){
if(args[i]>="a" && args[i]<="z")
 
System.out.println(j);
else
System.out.println("您所输入的字母是大写!");
}}
}
}
这样写不对,应该如何判断呢?在线等待!谢谢各位的指点!

13 个解决方案

#1


用正则表达式。 args[i].matchs([a-z])  // 大概

#2


楼主思路没错,不过得得把 args[i]转变化char之后再比ascii码

楼上也没错

#3


两种方法
1:
    String str="sd Afasfa";
    System.out.println(str.toLowerCase().equals(str));

2:
    boolean isInSmallCase=true;
    for(int i=0;i<str.length();i++){
      char c=str.charAt(i);
      if( Character.isUpperCase(c)){
        isInSmallCase=false;
        break;
      }
    }
    System.out.println(isInSmallCase);

第一种方法方便,但效率不如第二种方法

注意,第二种方法Character.isUpperCase(c)不可以替换成!Character.isLowerCase(c),因为java中非字母字符在这两个判断中都是false

#4


ask码也可以判断
取这个字符的ask码  在一定范伟内必定就是大写字母

#5


大写:Character.isUpperCase(args[i].charAt(j))==true
小写:Character.isLowerCase(args[i].charAt(j))==true

#6


大写:Character.isUpperCase(args[i].charAt(j))==true
小写:Character.isLowerCase(args[i].charAt(j))==true
---------------------------------------------------
学习一下这个方法。。。

#7


fool_leave()
--------------------- 
两种方法
1:
    String str="sd Afasfa";
    System.out.println(str.toLowerCase().equals(str));

2:
    boolean isInSmallCase=true;
    for(int i=0;i<str.length();i++){
      char c=str.charAt(i);
      if( Character.isUpperCase(c)){
        isInSmallCase=false;
        break;
      }
    }
    System.out.println(isInSmallCase);

第一种方法方便,但效率不如第二种方法
--------------------------------------
这种效率如何判断啊?

#8


效率的判断是要看源代码的

toLowerCase方法要重新生成一个String,然后一个一个字符的放进去。equals方法又要遍历比较。所以比较耗时

第二种方法直接通过charAt方法遍历数组,判断每个元素的大小写。和第一种方法比起来要少好多步骤。

不过一般都以为自己写的代码越少越好,习惯了也就比较喜欢第一种方法了。对于小字符串来说无所谓,但大字符串就不一样了。

#9


准确点的,还是用ascii码的范围比较精确
别的比如是非字母的,那么上面很多算法可能都会有问题

#10


to hdhmail2000(禅剑飞雪)
见我3楼的方法2,有一个备注。

#11


我还是建议用ascii码或者正则表达式解决简洁点,没必要那么复杂啊

#12


if(args[i]>="a" && args[i]<="z")
 
System.out.println(j);
else
System.out.println("您所输入的字母是大写!");

这个逻辑思想就不对,难道不是小写的字母就都是大写的了?

#13


static boolean isLower(int ch) {
        return ((ch-'a')|('z'-ch)) >= 0;
    }

    static boolean isUpper(int ch) {
        return ((ch-'A')|('Z'-ch)) >= 0;
    }

#1


用正则表达式。 args[i].matchs([a-z])  // 大概

#2


楼主思路没错,不过得得把 args[i]转变化char之后再比ascii码

楼上也没错

#3


两种方法
1:
    String str="sd Afasfa";
    System.out.println(str.toLowerCase().equals(str));

2:
    boolean isInSmallCase=true;
    for(int i=0;i<str.length();i++){
      char c=str.charAt(i);
      if( Character.isUpperCase(c)){
        isInSmallCase=false;
        break;
      }
    }
    System.out.println(isInSmallCase);

第一种方法方便,但效率不如第二种方法

注意,第二种方法Character.isUpperCase(c)不可以替换成!Character.isLowerCase(c),因为java中非字母字符在这两个判断中都是false

#4


ask码也可以判断
取这个字符的ask码  在一定范伟内必定就是大写字母

#5


大写:Character.isUpperCase(args[i].charAt(j))==true
小写:Character.isLowerCase(args[i].charAt(j))==true

#6


大写:Character.isUpperCase(args[i].charAt(j))==true
小写:Character.isLowerCase(args[i].charAt(j))==true
---------------------------------------------------
学习一下这个方法。。。

#7


fool_leave()
--------------------- 
两种方法
1:
    String str="sd Afasfa";
    System.out.println(str.toLowerCase().equals(str));

2:
    boolean isInSmallCase=true;
    for(int i=0;i<str.length();i++){
      char c=str.charAt(i);
      if( Character.isUpperCase(c)){
        isInSmallCase=false;
        break;
      }
    }
    System.out.println(isInSmallCase);

第一种方法方便,但效率不如第二种方法
--------------------------------------
这种效率如何判断啊?

#8


效率的判断是要看源代码的

toLowerCase方法要重新生成一个String,然后一个一个字符的放进去。equals方法又要遍历比较。所以比较耗时

第二种方法直接通过charAt方法遍历数组,判断每个元素的大小写。和第一种方法比起来要少好多步骤。

不过一般都以为自己写的代码越少越好,习惯了也就比较喜欢第一种方法了。对于小字符串来说无所谓,但大字符串就不一样了。

#9


准确点的,还是用ascii码的范围比较精确
别的比如是非字母的,那么上面很多算法可能都会有问题

#10


to hdhmail2000(禅剑飞雪)
见我3楼的方法2,有一个备注。

#11


我还是建议用ascii码或者正则表达式解决简洁点,没必要那么复杂啊

#12


if(args[i]>="a" && args[i]<="z")
 
System.out.println(j);
else
System.out.println("您所输入的字母是大写!");

这个逻辑思想就不对,难道不是小写的字母就都是大写的了?

#13


static boolean isLower(int ch) {
        return ((ch-'a')|('z'-ch)) >= 0;
    }

    static boolean isUpper(int ch) {
        return ((ch-'A')|('Z'-ch)) >= 0;
    }