我怎样才能把这个聊天机器人变成一个扫描用户输入的数组

Posted

技术标签:

【中文标题】我怎样才能把这个聊天机器人变成一个扫描用户输入的数组【英文标题】:How can i turn this chatter bot into an array that scans user input 【发布时间】:2018-03-26 23:01:26 【问题描述】:

嘿,所以基本上我有一个任务来制作一个简单的聊天机器人,他程序的目的是让用户输入一个带有 JOptionpane 的字符串,然后程序将搜索用户输入,看看他们写了什么包含我指定的关键字,如果是这样,他们的程序将显示某个消息。到目前为止,iv 使用 if-else 语句编写它,但老师希望我们使用数组(我不知道它们是如何工作的,我们只是希望知道)

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



【问题讨论】:

你的问题到底是什么? 【参考方案1】:

网上有很多关于java数组的好教程。此外,如果您的班级遵循任何类型的教科书,那么它也应该包含数组。 https://www.tutorialspoint.com/java/java_arrays.html 只是来自一个快速的谷歌。

一般来说,数组是一种数据结构,它将对象保存在类似函数的列表中。

一般来说

type[] var = new type[size];

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

实例

int[] intergerArray = new int[10];

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

一般索引

var = 数组变量

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

var[index] 将从var 数组返回存储在位置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
    
   

【讨论】:

以上是关于我怎样才能把这个聊天机器人变成一个扫描用户输入的数组的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能让这个 switch 语句使用扫描仪工作?

我怎样才能把一个词变成一个浮点值[关闭]

微信把输入的中文怎样变成英文

我怎样才能把几个字符打印成一个单词[关闭]

怎样才能把文字转化成声音

怎样才能把文字转化成声音