如何将此聊天机器人变成扫描用户输入的数组



嘿,所以我基本上有一个作业来制作一个简单的chatter bot,HE程序的目的是让用户输入带有JOptionpane的字符串,然后该程序将搜索用户输入查看他们写的任何内容是否包含我指定的关键词,如果他们编程将显示一条消息。到目前为止

import javax.swing.JOptionPane;
public class ChatterBot {
public static void main(String args[]) {
String input = "";
String maths = "";
String science = "";
String chemFact = "";
String bioFact = "";
String zooFact = "";
String algFact = "";
String yes = "Well good for you";
String no = "You learn something new everyday :)";
input = JOptionPane
        .showInputDialog("Pick one of the subjects listed to learn a fun fact (english, science, maths) ");
if (input.contains("science")) {
    science = JOptionPane.showInputDialog(
            "What kind of science fact woukd you like to know about? (chem, Biology, Zoology)");
}
else if (input.contains("maths")) {
    maths = JOptionPane.showInputDialog(
            "What kind of maths fact would you like to know about? (algebra, fractions, division) ");
}
if (maths.contains("algebra")) {
    algFact = JOptionPane.showInputDialog(
            ""Did you know a mathematician who specializes in algebra is called an algebraist? (yes or no)"");
}
if (algFact.contains("yes")) {
    System.out.println(yes);
} else if (algFact.contains("no")) {
    System.out.println(no);
}
if (science.contains("chem")) {
    chemFact = JOptionPane.showInputDialog(
            "Did you know If you pour a handful of salt into a full glass of water the water level will actually go down rather than overflowing the glass? (yes or no)");
}
if (chemFact.contains("yes")) {
    System.out.println(yes);
} else if (chemFact.contains("no")) {
    System.out.println(no);
}
else if (science.contains("biology")) {
    bioFact = JOptionPane.showInputDialog("Did you know The brain itself cannot feel pain? (yes or no)");
}
if (bioFact.contains("yes")) {
    System.out.println("Well good for you");
} else if (bioFact.contains("no")) {
    System.out.println("You learn something new everyday :)");
}
else if (science.contains("zoology")) {
    zooFact = JOptionPane
            .showInputDialog("Did you know butterflies have taste receptors on their feet? (yes or no)");
}
if (zooFact.contains("yes")) {
    System.out.println("Well good for you");
} else if (zooFact.contains("no")) {
    System.out.println("You learn something new everyday :)");
}
if (input.contains("?")) {
    System.out.println("I will be asking the questions");
}
}

在线上有很多关于Java数组的好教程。此外,如果您的班级遵循任何形式的教科书,那么它也应该覆盖阵列。https://www.tutorialspoint.com/java/java_arrays.html只是从快速的Google中。

通常,数组是一个数据结构,该数据结构将对象保存在函数之类的列表中。

一般说话

type[] var = new type[size];

type[] var = {foo0, foo1, foo2...};

真实示例

int[] intergerArray = new int[10];

String[] stringArray = {"Hello", "World"};

索引一般

var =数组变量

index =对象的位置-1(计算机从0开始(

var[index]将从 var array

返回存储在index位置的值

索引示例

  • 制作数组:

    String[] stringArray = {"This", "is", "my", "first", "array"};
    
  • 访问第一个值:

    stringArray[0];

  • 将值存储在变量中:

    String firstWord = stringArray[0];

您甚至可以一次迭代整个数组:

for (int i = 0; i < stringArray.length; i++){
  System.out.print(stringArray[i]);
}

输出: This is my first array

对于您的代码

我建议将您可能的输入放入数组(甚至在几个数组中(

String[] subjects = {"English", "Science", "Maths"};

您可以接受用户的输入,并通过数组循环循环,以查看它是否匹配了您受支持的输入之一。另外,通常您要为无效输入包含一个"默认"案例。

可能实现

import javax.swing.JOptionPane;
public class ChatterBot{
  public static void main(String[] args){
    String[] subjects = {"English", "Maths", "Science"};
    String userInput = JOptionPane
      .showInputDialog("Pick one of the subjects listed to learn a fun fact (english, science, maths) ");
    if (userInput.contains(subjects[0]){
     // english facts
    } else if (userInput.contains(subjects[1]){
     // science facts
    } else if (userInput.contains(subjects[2])){
     // maths facts
    }
  } 
}

最新更新