2017-12-08 17 views
0

번역기를 만들어야합니다. 러시아어와 영어 단어 쌍을 키와 값으로 사용하는 HashMap이 있습니다. 러시아어로 구문을 입력 할 때 사전에없는 단어에 대해서는 영어 번역 또는 nulls/not를 찾을 필요가 있습니다.번역기를 HashMap 사전으로 사용 Java

다음
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)); 

러시아어 I 입력 별개의 단어가 내가 그에 대한 번역을 얻을 때 잠시 나는 다른 단어로 구성된 문구를 입력하면 null이됩니다. 그래서 내가 뭘 잘못하고 있니? 나는 약간 도움을 위해 고맙게 여길 것이다! 이 같은

+2

당신은 문장을 단어 대신 줄로 나누고 있습니다. 어쩌면'sentence.split ("")'를 원했던 것일까 요? –

+0

@LorisSecuro 덕분에, 그것은 나를 도왔습니다. 답변으로 표시되어야합니다! – Cassie

답변

1

당신은 대신 단어의 선으로 문장을 분할하는 아마 당신은 sentence.split(" ") 대신 sentence.split("\n")를 사용하고 싶었다.

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