2013-12-06 3 views
0
 import java.util.*; 

public class TestChatBot 
{ 
    public static void main(String [] args) 
    { 
     Scanner input = new Scanner(System.in); 
     String x = input.nextLine(); 


     TestChatBot e = new TestChatBot(); 
     { 
      String prompt = "What would you like to talk about?"; 
      System.out.println(prompt); 

      String userInput = input.nextLine(); 

      while(!userInput.equals("Goodbye")) 
      { 
       System.out.println(e.getResponse()); 
       userInput = input.nextLine(); 
      } 
     } 

    } 

public class ChatBot 
{ 

    public String getResponse(String input) 
    { 
     Scanner userInput = new Scanner(input); 
     input = userInput.nextLine(); 

     longestWord(input); 

     String keyword = "you"; 
     int you = input.indexOf(keyword); 

     if (you >= 0) 
      return "I'm not important. Let's talk about you."; 

     if (input.length() <= 3) 
      return "Maybe we should move on. Is there anything else you would like to 
         talk about?"; 

     if (input.length() == 4) 
      return "Tell me more about " + input; 

     if(input.length() == 5) 
      return "Why do you think " + input + "is important?"; 

     else 
      return "Now we're getting somewhere. How does " + input + "affect you the 
       most?"; 
    } 

    private String longestWord(String x) 
    { 
     Scanner input = new Scanner(x);  

     String longest = ""; 

     String temp = input.next(); 

     while (input.hasNext()) 
     { 
      if (temp.length() > longest.length()) 
       longest = temp; 
     } 

     return longest; 

     } 




     } 
    } 

В моем классе ChatBotTest сказано, что мой метод getResponse() не определен для класса TestChatBot ... Я действительно не понимаю, почему он говорит об этом, и это предотвращает запуск моего кода. Я довольно новичок в Java, поэтому извиняюсь за плохое/неаккуратное кодирование. Любая помощь очень ценится, спасибо!Метод не определен для класса TestChatBot?

+0

Вы объявили 'getResponse' в классе' TestChatBot' или 'класса ChatBot'? –

ответ

4
TestChatBot e = new TestChatBot(); 

Должно быть

ChatBot e = new ChatBot(); 

TestChatBox не getResponse()

Кроме того, ваш getResponse принимает строку argmument. Я думаю, что вы хотите передать userInput к нему

System.out.println(e.getResponse(userInput)); 
+2

Кроме того, OP должен передать 'userInput' в' getResponse() '- он имеет параметр' String', но аргумент не передается. –

+0

@JonSkeet хороший улов :) –