以 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")
。
我需要创建某种翻译器。我有一个 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")
。