题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用 while 语句,条件为输入的字符不为’\n’.
package lianxi;
import java.util.Scanner;
public class 处理字符串 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int letterNumber=0;
int spaceNumber=0;
int digitNumber=0;
int otherNumber=0;
Scanner in=new Scanner(System.in);
String str=in.nextLine();
char[] ch=str.toCharArray();
int i=0;
while(i<ch.length) {
if(Character.isLetter(ch[i]))
{
letterNumber++;
}
else if(Character.isWhitespace(ch[i]))
{
spaceNumber++;
}
else if(Character.isDigit(ch[i]))
{
digitNumber++;
}
else {
otherNumber++;
}
i++;
}
in.close();
System.out.println("英文字母的个数:"+letterNumber);
System.out.println("空格的个数:"+spaceNumber);
System.out.println("数字的个数:"+digitNumber);
System.out.println("其他字符的个数:"+otherNumber);
}
}
Java中的Scanner类中的方法next()与nextLine()都是吸取输入控制台输入的字符
① next()方法不会吸取字符前和后的空格/Tab,只吸取字符,开始吸取字符(字符前后不算)
直到遇到空格/Tab/回车截取吸取
② nextLine() 吸取字符前后的空格/Tab键,也会吸收回车符
toCharArray()的用法:将字符串对象中的字符转换为一个字符数组
例如:
String myString="abcd";
char myChar[]=myString.toCharArray();
System.out.println("myChar[1]="+myChar[1]);
输出结果:
myChar[1]=b
Character.isLetter
isLetter() 方法用于判断指定字符是否为字母。
语法:
boolean isLetter(char ch)
参数
ch – 要测试的字符。
返回值
如果字符为字母,则返回 true;否则返回 false。
public class Test {
public static void main(String args[]) {
System.out.println(Character.isLetter('c'));
System.out.println(Character.isLetter('5'));
}
}