字元個數統計
字元個數統計
念天地之悠悠,獨愴然而涕下。
題目描述
編寫一個函數,計算字元串中含有的不同字元的個數。字元在ACSII碼範圍內(0~127),換行表示結束符,不算在字元里。不在範圍內的不作統計。多個相同的字元只計算一次。
例如,對於字元串abaca而言,有a、b、c三種不同的字元,因此輸出3。
輸入描述
輸入一行沒有空格的字元串。
輸出描述
輸出範圍在(0~127)字元的個數。
示例
輸入
abc
輸出
3Java程式碼示例
1 import java.util.*;
2 import java.io.*;
3
4 // 可以看看ASCII對照表://baike.baidu.com/item/ASCII/309296?fromtitle=ascii%E7%A0%81&fromid=99077&fr=aladdin
5 public class Main{
6 public static void main(String [] args) throws IOException {
7 //Scanner bufferReader = new Scanner(System.in);
8 //String line = bufferReader.nextLine();
9 // 使用BufferedReader & InputStreamReader 會比直接使用Scanner運行速度快些
10 BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
11 String line = bufferReader.readLine();
12 int [] lineArray = new int [127];
13 int count = 0; // 統計重複的字元個數
14 // 遍歷輸入字元串的每一個字元,若首次出現將char對應的索引數組賦值,同時count + 1
15 for(int i = 0; i < line.length(); i++){
16 char temp = line.charAt(i);
17 if(lineArray[temp] == 0){ // 數組未賦值默認值為 0
18 count++;
19 lineArray[temp] = 1; // 該cahr 數組索引賦值
20 }
21 // 假如輸入tjt,第一次 lineArray[t] 賦值後,下次char為t的再過來就直接跳過
22 }
23 System.out.println(count);
24 }
25 }
驗證通過

念天地之悠悠
獨愴然而涕下

