天天看點

1221: 單詞統計問題

題目

Description

巨硬公司(huge-hard)最近計劃出品一個字處理軟體。軟體基本功能已經完成,但還缺少一個單詞統計的功能,你的任務就是為該公司寫一段程式,完成統計功能。

需要統計的資訊有兩項:出現單詞的個數和單個單詞出現的次數。

Input

輸入為一行字元串,即要統計的文本。

Output

輸出由若幹行組成,第一行是一個整數,表示單詞的個數,從第二行開始,每行由字元串、冒号、整數組成,其中字元串是一個出現在文本中的單詞,整數則是該單詞在文本中出現的次數。

Sample Input

to know everything is to know nothing

Sample Output

7

everything:1

is:1

know:2

nothing:1

to:2

代碼塊

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner cn = new Scanner(System.in);
        String str = cn.nextLine();
        String[] dd = str.split(" ");
        System.out.println(dd.length);
        Word[] word = new Word[dd.length];
        int k = ;
        for (int i = ; i < dd.length; i++) {
            if (dd[i].equals("-1"))//用改值的方法,跳過重複的單詞
                continue;
            else {
                String name = dd[i];
                int temp = ;
                for (int j = i + ; j < dd.length; j++) {
                    if (dd[i].equals(dd[j])) {
                        dd[j] = "-1";//将重複的字元串的值改成-1
                        temp++;
                    }
                }
                word[k]= new Word(temp+,name);
                k++;
            }
        }
        for(int i =;i<k;i++){
            for(int j = i+;j<k;j++){
                if(word[i].getName().compareTo(word[j].getName())>){
                    Word zz = word[j];
                    word[j] = word[i];
                    word[i] = zz;
                }
            }
        }
        for (int z = ; z < k; z++) {
            System.out.println(word[z].getName() + ":" + word[z].getTemp());
        }
    }
}

class Word {
    private int temp;
    private String name;

    public Word(int temp, String name) {
        this.name = name;
        this.temp = temp;
    }

    public void setTemp(int temp) {
        this.temp = temp;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getTemp() {
        return this.temp;
    }

    public String getName() {
        return this.name;
    }
}