描述
編寫一個程序,輸入一個句子,然后統計出這個句子當中不同的單詞個數。例如:對於句子“one little two little three little boys”,總共有5個不同的單詞:one, little, two, three, boys。 說明:(1)輸入的句子當中只包含英文字符和空格,單詞之間用一個空格隔開;(2)不用考慮單詞的大小寫,假設輸入的都是小寫字符;(3)句子長度不超過100個字符。 |
輸入
輸出
| 輸出只有一行,是一個整數,表示句子中不同單詞的個數。 |
難度
輸入示例
one little two little three little boys |
輸出示例
完成代碼:
1 import java.util.Scanner;
2
3 public class Demo01{
4 public static void main(String[] args) {
5 Scanner sc = new Scanner(System.in);
6 int n=0; //n統計有多少個不同單詞,a保存單詞,b判斷是否有重復單詞,設當b=1表示為重復單詞
7 String str=sc.nextLine();
8 String[] a=str.split(" ");
9 int[] b=new int[a.length];
10 for(int i=0;i<a.length;i++){ //從第一個開始遍歷
11 String t1=a[i]; //用t1保存第i個單詞
12 for(int j=i+1;j<a.length;j++){
13 String t2=a[j]; //用t2保存第j個單詞
14 if(b[i]!=1){ //b[i]==1表示被訪問的單詞為重復單詞,會跳出循環
15 if(t1.length()==t2.length()){ //如果兩個單詞長度不同證明是不同單詞,繼續訪問下一個單詞
16 int flag=0; //標記兩個單詞是否一樣,若一樣的話將在b進行標記
17 for(int h=0;h<t1.length();h++)
18 if(t1.charAt(h)!=t2.charAt(h)) {
19 flag = 1;
20 break;
21 }
22 if(flag==0)
23 b[j]=1;
24 }
25 }
26 }
27 }
28 for(int i=0;i<a.length;i++){
29 if(b[i]==0)
30 n++;
31 }
32 System.out.println(n);
33 sc.close();
34 }
35 }