题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用 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键,也会吸收回车符
Java中next与nextLine方法的区别
toCharArray()的用法:将字符串对象中的字符转换为一个字符数组
例如:
String myString="abcd"; char myChar[]=myString.toCharArray(); System.out.println("myChar[1]="+myChar[1]);输出结果:
myChar[1]=b
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')); } }