1.首先要了解String类中一些方法,如下
(1).Character.isLetter(字符变量);//判断该字符变量是否是字母,如果是返回true,否则返回flase。
(2).Character.isLowerCase(字符变量);//判断该字符变量是否是小写字母,如果是返回true,否则返回flase。
(3).Character.isUpperCase(字符变量);//判断该字符变量是否是大写字母,如果是返回来true,否则返回flase。
(4).Character.isWhitespace(字符变量);//判断该字符变量是否是空格,如果是返回true,否则返回flase。
(5).Character.isDigit(字符变量);//判断该字符变量是否是数字型字符,如果是返回true,否则返回flase。
(6).char 字符变量(创建一个字符变量) = 字符串变量(已经创建的字符串).charAt(i);//i表示该字符串的下标,将该字符串下标i的字符内容赋值给字符变量;
2.思路:(1).首先从控制台输入一个字符串(其中包含大小写字母,空格以及数字型字符)。
(2).然后想办法从该字符串的第一个字母位置遍历到最后一个字母的位置。
(3).在遍历的过程中,用if语句去判断该字符是否是一个字母,如果是字母,继而去判断它是小写字母还是大写字母。如果不是一个字母,就去判断它是否为空格或者数字型字符。
(4).在判断的过程中将它们累加起来。最后输出统计的数目。
package cn.bokeday02.string;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class StatistialStringNum {
/**
* 输入一个字符串,统计里面的大写字母,小写字母,空格,数字的个数
* Character.isLetter(字符变量);//判断该字符变量是否是字母
* Character.isWhitespace(字符变量);//判断该字符变量是否是空格
* Character.isLowerCase(字符变量);//判断该字符变量是否是小写字母
* Character.isUpperCase(字符变量);//判断该字符变量是否是大写字母
* Character.isDigit(字符变量);//判断该字符变量是否是数字型字符
* 多写几遍String里面的构造方法
* @2689990101@qq.com
*
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Plase input a String");
String str = buf.readLine();//从控制台输入字符串赋值到字符串变量str中
int lowercase = 0,uppercase =0,space = 0,digit = 0;//初始化累加的变量为0
for(int i = 0;i < str.length();i++){//循环遍历该字符串中的每个字符,下标元素从0开始到str.length()-1结束。
char ch = str.charAt(i);//因为以下方法接受的参数是一个字符变量,所有要用 字符串变量.charAt(位置,也就是下标指到的地方)中的字符提取出来给它单独的放入字符变量ch中;
if(Character.isLetter(ch)){//如果是字母,然后在进行大小写判断
if(Character.isLowerCase(ch)){//如果是小写字母
lowercase++;
}
if(Character.isUpperCase(ch)){//如果是大写字母
uppercase++;
}
}
if(Character.isWhitespace(ch)){//如果是空格
space++;
}
if(Character.isDigit(ch)){//如果是数字型字符
digit++;
}
}
System.out.println("小写字母的个数:"+lowercase+"\n大写字母的个数:"+uppercase+"\n空格的个数:"+space+"\n数字型字符的个数:"+digit);
}
}
至此,一个从控制台输入字符串里面的大小字母,空格,和数字型字母的个数已经判断出来了。