Java判断-字母-数字-空格-特殊符号

x33g5p2x  于2021-09-29 转载在 Java  
字(2.6k)|赞(0)|评价(0)|浏览(251)

第一种方法直接判断字符

Scanner scan = new Scanner(System.in);//扫描器接受控制台的输入信息
System.out.println("输入一组字符");
String str = scan.nextLine(); //取出控制台的一行信息,也就是你输入的信息
char[] c = str.toCharArray();//把取道的字符串变成一个char数组

int num = 0;//数字个数
int letter = 0;//字母个数
int space = 0;//空格个数
int other = 0;//其他个数
for(int i=0;i<c.length;i++){
  char temp = c[i];
  if(temp >= '0' && temp <= '9'){//判断是否为数字
      num++;
  }else if((temp >= 'A' && temp <= 'Z') || (temp >= 'a' && temp <= 'z')){//判断是否为字母
      letter++;
  }else if(temp == ' '){//判断是否为空格
      space++;
  }else{
      other++;
  }
}
System.out.println("数字个数:"+num+"\t字母个数:"+letter+"\t空格个数:"+space+"\t其他个数:"+other);

第二种方法使用包装类Character的方法

int abcCount = 0; //英文字母个数
int spaceCount = 0; //空格键个数
int numCount = 0; //数字个数
int otherCount = 0; //其他字符个数
Scanner scan = new Scanner(System.in);//扫描器接受控制台的输入信息
System.out.println("输入一组字符");
String str = scan.nextLine(); //取出控制台的一行信息,也就是你输入的信息
char[] ch = str.toCharArray();//把取道的字符串变成一个char数组
for (int i = 0; i < ch.length; i++) {
    if (Character.isLetter(ch[i])) {
        //判断是否字母
        abcCount++;
    } else if (Character.isDigit(ch[i])) {
        //判断是否数字
        numCount++;
    } else if (Character.isSpaceChar(ch[i])) {
        //判断是否空格键
        spaceCount++;
    } else {
        //以上都不是则认为是其他字符
        otherCount++;
    }
}
System.out.println("字母个数:" + abcCount);
System.out.println("数字个数:" + numCount);
System.out.println("空格个数:" + spaceCount);
System.out.println("其他字符个数:" + otherCount);

第三种方法根据ASCII码

根据ASCII码,第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母
int letter=0,number=0,blank=0,other=0;
        System.out.println("请输入一行字符串:");
        Scanner input=new Scanner(System.in);
        String str=input.nextLine();
        char[] c=str.toCharArray();
//根据ASCII码判断
        for (int d : c) {
            if(d>=65 && d<=90||d>=97 && d<=122){
                letter++;
            }
            else if(d>=48 && d<=57){
                number++;
            }
            else if (d==32) {
                blank++;
            }
            else{
                other++;
            }
        }
        System.out.println("字母个数:"+letter);
        System.out.println("数字个数:"+number);
        System.out.println("空格个数:"+blank);
        System.out.println("其他个数:"+other);

第四种使用正则表达式

Scanner scan = new Scanner(System.in);//扫描器接受控制台的输入信息
System.out.println("输入一组字符");
String str = scan.nextLine(); //取出控制台的一行信息,也就是你输入的信息
char[] c = str.toCharArray();//把取道的字符串变成一个char数组

int num = 0;//数字个数
int letter = 0;//字母个数
int space = 0;//空格个数
int other = 0;//其他个数
String reg1 = "[a-zA-Z]";
String reg2 = "[0-9]";
String reg3 = "\\s";
for(int i=0;i<c.length;i++){
    String temp = String.valueOf(c[i]); //将字符成 字符串
    if(temp.matches(reg2)){//判断是否为数字
        num++;
    }else if(temp.matches(reg1)){//判断是否为字母
        letter++;
    }else if(temp.matches(reg3)){//判断是否为空格
        space++;
    }else{
        other++;
    }
}
System.out.println("数字个数:"+num+"\t字母个数:"+letter+"\t空格个数:"+space+"\t其他个数:"+other);

相关文章

微信公众号

最新文章

更多