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

📄 responder.java

📁 现在在国外大学里最流行的java学习软件,同时还有大量的example,在名为project的文件里.安装好后用bluej打开peoject的例子,可以进行你想要的任何变化.同时可以了解大量的源码
💻 JAVA
字号:
import java.util.HashMap;import java.util.HashSet;import java.util.ArrayList;import java.util.Iterator;import java.util.Random;/** * The responder class represents a response generator object. * It is used to generate an automatic response, based on specified input. * Input is presented to the responder as a set of words, and based on those * words the responder will generate a String that represents the response. * * Internally, the reponder uses a HashMap to associate words with response * strings and a list of default responses. If any of the input words is found * in the HashMap, the corresponding response is returned. If none of the input * words is recognized, one of the default responses is randomly chosen. *  * @version    1.0 * @author     Michael Kolling and David J. Barnes */public class Responder{    // Used to map key words to responses.    private HashMap<String, String> responseMap;    // Default responses to use if we don't recognise a word.    private ArrayList<String> defaultResponses;    private Random randomGenerator;    /**     * Construct a Responder     */    public Responder()    {        responseMap = new HashMap<String, String>();        defaultResponses = new ArrayList<String>();        fillResponseMap();        fillDefaultResponses();        randomGenerator = new Random();    }    /**     * Generate a response from a given set of input words.     *      * @param words  A set of words entered by the user     * @return       A string that should be displayed as the response     */    public String generateResponse(HashSet<String> words)    {        Iterator<String> it = words.iterator();        while(it.hasNext()) {            String word = it.next();            String response = responseMap.get(word);            if(response != null) {                return response;            }        }        // If we get here, none of the words from the input line was recognized.        // In this case we pick one of our default responses (what we say when        // we cannot think of anything else to say...)        return pickDefaultResponse();    }    /**     * Enter all the known keywords and their associated responses     * into our response map.     */    private void fillResponseMap()    {        responseMap.put("crash",                         "Well, it never crashes on our system. It must have something\n" +                        "to do with your system. Tell me more about your configuration.");        responseMap.put("crashes",                         "Well, it never crashes on our system. It must have something\n" +                        "to do with your system. Tell me more about your configuration.");        responseMap.put("slow",                         "I think this has to do with your hardware. Upgrading your processor\n" +                        "should solve all performance problems. Have you got a problem with\n" +                        "our software?");        responseMap.put("performance",                         "Performance was quite adequate in all our tests. Are you running\n" +                        "any other processes in the background?");        responseMap.put("bug",                         "Well, you know, all software has some bugs. But our software engineers\n" +                        "are working very hard to fix them. Can you describe the problem a bit\n" +                        "further?");        responseMap.put("buggy",                         "Well, you know, all software has some bugs. But our software engineers\n" +                        "are working very hard to fix them. Can you describe the problem a bit\n" +                        "further?");        responseMap.put("windows",                         "This is a known bug to do with the Windows operating system. Please\n" +                        "report it to Microsoft. There is nothing we can do about this.");        responseMap.put("macintosh",                         "This is a known bug to do with the Mac operating system. Please\n" +                        "report it to Apple. There is nothing we can do about this.");        responseMap.put("expensive",                         "The cost of our product is quite competitive. Have you looked around\n" +                        "and really compared our features?");        responseMap.put("installation",                         "The installation is really quite straight forward. We have tons of\n" +                        "wizards that do all the work for you. Have you read the installation\n" +                        "instructions?");        responseMap.put("memory",                         "If you read the system requirements carefully, you will see that the\n" +                        "specified memory requirements are 1.5 giga byte. You really should\n" +                        "upgrade your memory. Anything else you want to know?");        responseMap.put("linux",                         "We take Linux support very seriously. But there are some problems.\n" +                        "Most have to do with incompatible glibc versions. Can you be a bit\n" +                        "more precise?");        responseMap.put("bluej",                         "Ahhh, BlueJ, yes. We tried to buy out those guys long ago, but\n" +                        "they simply won't sell... Stubborn people they are. Nothing we can\n" +                        "do about it, I'm afraid.");    }    /**     * Build up a list of default responses from which we can pick one     * if we don't know what else to say.     */    private void fillDefaultResponses()    {        defaultResponses.add("That sounds odd. Could you describe that problem in more detail?");        defaultResponses.add("No other customer has ever complained about this before. \n" +                             "What is your system configuration?");        defaultResponses.add("That sounds interesting. Tell me more...");        defaultResponses.add("I need a bit more information on that.");        defaultResponses.add("Have you checked that you do not have a dll conflict?");        defaultResponses.add("That is explained in the manual. Have you read the manual?");        defaultResponses.add("Your description is a bit wishy-washy. Have you got an expert\n" +                             "there with you who could describe this more precisely?");        defaultResponses.add("That's not a bug, it's a feature!");        defaultResponses.add("Could you elaborate on that?");    }    /**     * Randomly select and return one of the default responses.     * @return     A random default response     */    private String pickDefaultResponse()    {        // Pick a random number for the index in the default response list.        // The number will be between 0 (inclusive) and the size of the list (exclusive).        int index = randomGenerator.nextInt(defaultResponses.size());        return defaultResponses.get(index);    }}

⌨️ 快捷键说明

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