⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 words.java

📁 Wortstatistik 试用正则语言的一个例子.
💻 JAVA
字号:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Wort-Klasse.
 * 
 * @author Kunxiang Gao
 * 18.09.2007
 */
public class Words {

    private String value; 

    /**
     * Konstruktor.
     * @param String value
     */
    public Words(String value) {
        if (value == null) {
            this.value = "";
        } else {
            Pattern p = Pattern.compile("[\\u0020|\\t|\\n|\\f]+",
                    Pattern.CASE_INSENSITIVE + Pattern.UNICODE_CASE);
            Matcher matcher = p.matcher(value);
            if (matcher.find()) {
                this.value = value;
            } else if (value.matches("[a-zA-Z]+")) {
                this.value = value;
            } else
                this.value = "";
        }
    }

   /**
    * liefert Word[] zurueck
    * @return Word[]
    */
    public Word[] getWords() {
        if (value.matches("[\\u0020|\\t|\\n|\\f]+") || value.equals("")) {
            return new Word[0];
        }
        String[] result;

        if (value.matches("[a-zA-Z]+")) {
            result = new String[] {value};
        } else {
            result = value.split("[\\u0020|\\t|\\n|\\f]+");
        }

        String temp;
        int lang = result.length;
        for (int i = 0; i < result.length - 1; i++) {
            for (int j = 0; j < result.length - 1 - i; j++) {
                if (result[j].compareTo(result[j + 1]) < 0) {

                } else if (result[j].compareTo(result[j + 1]) == 0) {
                    result[j] = "";
                    lang--;
                } else {
                    temp = result[j];
                    result[j] = result[j + 1];
                    result[j + 1] = temp;
                }
            }
        }

        ArrayList wordList = new ArrayList(result.length);
        for (int i = 0; i < result.length; i++) {
            wordList.add(result[i]);
        }

        while (wordList.get(0).equals("")) {
            wordList.remove("");
        }


        Word[] wordBack = new Word[wordList.size()];
        for (int i = 0; i < wordList.size(); i++) {
            wordBack[i] = new Word((String) wordList.get(i));
        }
        return wordBack;

    }

    /**
     * liefert frequenz zuturck
     * @param String word
     * @return int
     */
    public int frequency(String word) {
        int f = 0;
        if (value.matches("[\u0020|\t|\n|\f]+") || value.equals("")) {
            return 0;
        }
        String[] result = value.split("[\\u0020|\\t|\\n|\\f]+");
        for (int i = 0; i < result.length; i++) {
            if (word.equals(result[i])) {
                f++;
            }
        }
        return f;
    }

    /** 
     *  liefert word bei frequenz
     * @return Word[]
     */
    public Word[] getWordsbyFreq() {
        if (value.matches("[\\u0020|\\t|\\n|\\f]+") || value.equals("")) {
            return new Word[0];
        }
        String[] result = value.split("[\\u0020|\\t|\\n|\\f]+");
        String[] temp = new String[result.length];
        Map map = new HashMap();
        for (int i = 0; i < result.length; i++) {
            int count = 0;
            if (map.get(result[i]) != null)
                count = ((Integer) map.get(result[i])).intValue();
            map.put(result[i], new Integer(++count));
        }
        Word[] backWord = new Word[map.size()];
        int index = 0;
        for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
            Map.Entry entry = (Map.Entry) it.next();
            String key = entry.getKey().toString();
            int count = ((Integer) entry.getValue()).intValue();
            backWord[index] = new Word(key);
            backWord[index].setFrequency(count);
            index++;
        }
        Word temp1;
        for (int i = 0; i < backWord.length - 1; i++) {
            for (int j = 0; j < backWord.length - 1 - i; j++) {
                if (backWord[j].getFrequency() >= backWord[j + 1]
                                                           .getFrequency()) {
                    continue;
                } else {
                    temp1 = backWord[j];
                    backWord[j] = backWord[j + 1];
                    backWord[j + 1] = temp1;
                }
            }
        }
        for (int i = 0; i < backWord.length - 1; i++) {
            for (int j = 0; j < backWord.length - 1 - i; j++) {
                if (backWord[j].getFrequency() == backWord[j + 1]
                                                           .getFrequency()) {
                    if (backWord[j].getValue().compareTo(
                            backWord[j + 1].getValue()) <= 0) {
                        continue;
                    } else {
                        temp1 = backWord[j];
                        backWord[j] = backWord[j + 1];
                        backWord[j + 1] = temp1;
                    }
                }

            }
        }
        return backWord;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -