1. 程式人生 > 其它 >輸入一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數

輸入一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數

輸入一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數
/*
題目:輸入一行字元,分別統計出其英文字母、空格、數字和其它字元的個數。
*/
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( )方法用法如下

//useDelimiter("\n"); //“\n”換行符(回車)作為輸入的分隔符
Scanner scan = new Scanner(System.in).useDelimiter("\n");
System.out.print("請輸入:");
String year = scan.next();
System.out.printf("%s",year);