Search code examples
javachatbot

Mini java chatbot


I am new to Java and trying to make a simple mini chatbot, that answers to 3 questions with user input and if/else statement.

I do not know if I am correct, but I got this far:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Hello there! It's Chatbot here. How can I help you?");
        boolean running = true;
        while (running == true) {
            System.out.println(" ");
            String currentLine = input.nextLine();
            if (input.equals("Hi")) {
                System.out.println("Hi there! Any way I can help you?");
            } else if (input.equals("What do you eat?")) {
                System.out.println("I eat only your battery and internet!");
            } else if (input.equals("Who made you?")) {
                System.out.println("I was made thanks to Reinis!");
            } else if (input.equals("Bye")) {
                System.out.println("Bye! Have a nice day!");
            } else {
                System.out.println("Sorry! I am new to this and I didn't understand you. Try to ask me in a different way!");
            }
        }
    }
}

When I run it everything goes to if statement, can you point at the right direction where I am wrong? And maybe what is a better way to create this. Does java has word containing options from user input? I am not asking for code, just for pointers, thanks!


Solution

  • The problem is that you are using the same variable input as String and as Scanner, change the name of the variable like this:

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.println("Hello there! It's Chatbot here. How can I help you?");
            boolean running = true;
            while (running == true) {
                System.out.println(" ");
                String currentLine = input.nextLine();
                switch(currentLine) {
                    case 'Hi':
                        System.out.println("Hi there! Any way I can help you?");
                        break;
                    case 'What do you eat?':
                        System.out.println("I eat only your battery and internet!");
                        break;
                    case 'Who made you?':
                        System.out.println("I was made thanks to Reinis!");
                        break;
                    case 'Bye':
                        System.out.println("Bye! Have a nice day!");
                        break;
                    default:
                        System.out.println("Sorry! I am new to this and didn't understand. Try to ask me in a different way!");
                        break;
                }
            }
        }
    }