【问题标题】:Translator with HashMap as dictionary Java以 HashMap 作为字典 Java 的翻译器
【发布时间】:2017-12-08 22:06:15
【问题描述】:

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

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

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。 那么我做错了什么?我将不胜感激!

【问题讨论】:

  • 你是按行而不是单词来分割句子,也许你想要sentence.split(" ")
  • @LorisSecuro 谢谢,它帮助了我。它应该被标记为答案!

标签: java hashmap language-translation


【解决方案1】:

类似这样的:

    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);
    }

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2022-11-30
      相关资源
      最近更新 更多