輸入一行字符,分別統計出其中英文字母、空格、數字和其他字符的個數
/*
題目:輸入一行字符,分別統計出其英文字母、空格、數字和其它字符的個數。
*/
public class StatisticalCharacters {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in).useDelimiter("\n");
System.out.println("請輸入字符串");
String s = scanner.next();
int a = 0;//小寫字母
String aStr = "";
int b = 0;//大寫字母
String bStr = "";
int c = 0;//數字
String cStr = "";
int d = 0;//特殊字符
String dStr = "";
int e = 0;//空格
for (int i=0;i<s.length();i++){
if (s.charAt(i)>= 97 && s.charAt(i) <= 122 ){//小寫字母
a++;
aStr = aStr + s.charAt(i);
}else if (s.charAt(i)>=65 && s.charAt(i) <=90){//大寫字母
b++;
bStr = bStr + s.charAt(i);
}else if (s.charAt(i) >'0' && s.charAt(i) <'9'){//數字
c++;
cStr = cStr + s.charAt(i);
}else if (s.charAt(i) == 32) {//空格
e=e+1;
} else {// 特殊字符
d++;
dStr = dStr + s.charAt(i);
}
}
System.out.println("小寫字母的個數為"+a+"個");
System.out.println("存在小寫字母如下:" + aStr);
System.out.println("大寫字母的個數為"+b+"個");
System.out.println("存在大寫字母如下:" + bStr);
System.out.println("數字字符的個數為"+c+"個");
System.out.println("存在數字字符如下:" + cStr);
System.out.println("特殊字符的個數為"+d+"個");
System.out.println("存在特殊字符如下:" + dStr);
System.out.println("空格字符的個數為"+e+"個");
}
}
***********************************
Scanner.useDelimiter( )方法
由於Scanner對象將首先跳過輸入流開頭的所有空白分隔符,然后對輸入流中的信息進行檢查,直到遇到空白分隔符為止;因此輸入數據:this is a test;空白后面的字符:is a test不會顯示輸出來
這時就需要用Scanner.useDelimiter( )方法,可以將分隔符號修改為"回車",或者其他字符。
//useDelimiter("\n"); //“\n”換行符(回車)作為輸入的分隔符
Scanner scan = new Scanner(System.in).useDelimiter("\n");
System.out.print("請輸入:");
String year = scan.next();
System.out.printf("%s",year);