以 HashMap 作为字典的翻译器 Java

Translator with HashMap as dictionary Java

我需要创建某种翻译器。我有一个 HashMap,其中成对的俄语和英语单词分别作为键和值。当我用俄语输入一个短语时,我需要获得英文翻译或 nulls/not 找到字典中没有的单词。

所以我有这样的翻译方法:

public boolean isInDictionary(String word){
        if(dictionary.containsKey(word)){
            return true;
        }
        return false;
    }

    public String translateSentence(String sentence){
        StringBuilder result = new StringBuilder();
        String[] splittedStrings = sentence.split( "\n" );

        List<String> list = new ArrayList<>();
        for(String s : splittedStrings){
            result.append(translateCheck(s));
        }
        return result.toString();
    }

    public String getWord(String word){
        return dictionary.get(word);
    }

我是这样调用这些方法的:

    Scanner scanner = new Scanner(System.in);
    Translator translator = new Translator();
    System.out.println("Input the phrase to translate:");
    String input = scanner.nextLine();
    System.out.println(translator.translateSentence(input));

当我输入不同的俄语单词时,我会得到相应的翻译,而当我输入由不同单词组成的短语时,我得到的是 null。 那我做错了什么?如果能提供一些帮助,我将不胜感激!

像这样:

    public boolean isInDictionary(String word) {
        return dictionary.containsKey(word); //note the removal of the if as it already returns a boolean
    }

    public String translateSentence(String sentence) {
        StringBuilder result = new StringBuilder();
        String[] splittedStrings = sentence.trim().split(" "); // the actual change

        List<String> list = new ArrayList<>();
        for (String s : splittedStrings) {
            result.append(translateCheck(s));
        }
        return result.toString();
    }

    public String getWord(String word) {
        return dictionary.get(word);
    }

您正在按行而不是单词拆分句子,可能您想使用 sentence.split(" ") 而不是 sentence.split("\n")