先把String转化成array,再通过Character中的几个方法对每个char进行判断。
该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
import java.util.Scanner;
public class CharDistinct {
public static void main(String[] args){
int upCaseCnt=0;
int lowCaseCnt=0;
int spaceCnt=0;
int numCnt=0;
int otherCnt=0;
System.out.println("请输入字符串:");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
//第一种方法
int len=str.length();
for(int i=0;i<len;i++){
char c=str.charAt(i);
if(c>=65&&c<=90)
upCaseCnt++;
else if(c>=97&&c<=122)
lowCaseCnt++;
else if(c>=48&&c<=57)
numCnt++;
else if(c==32)
spaceCnt++;
else otherCnt++;
}
/**第二种方法
char[] ch = str.toCharArray();
for(int i=0;i<ch.length;i++){
if(Character.isUpperCase(ch[i])){
upCaseCnt++;
}else if(Character.isLowerCase(ch[i])) {
lowCaseCnt++;
}else if(Character.isDigit(ch[i])){
numCnt++;
}else if(Character.isSpaceChar(ch[i])){
spaceCnt++;
}else{
otherCnt++;
}
}
*/
System.out.println("upCaseCnt:"+upCaseCnt);
System.out.println("lowCaseCnt:"+lowCaseCnt);
System.out.println("spaceCnt:"+spaceCnt);
System.out.println("numCnt:"+numCnt);
System.out.println("otherCnt:"+otherCnt);
}
}