Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("BubbleBot: Hello! What's your name?");
Console.WriteLine("");
Console.ResetColor();
while (!shutdown)
{
foundResponse = false;
Console.Write("You: ");
inputValue = Console.ReadLine().ToLower();
Console.WriteLine("");
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write("BubbleBot: ");
switch(inputValue)
{
case "My name is ":
foundResponse = true;
outputValue = "Hello,";
break;
我正在尝试制作一个聊天机器人,我想确保聊天机器人只有在“我的名字是”出现在聊天机器人之前时才会看到文本作为用户的名字。我不确定这是否可能,如果可能,我如何才能实现它?(基本上我想说明的是,"My name is“后面的任何单词都应该设置为字符串"userName")
发布于 2018-06-13 06:55:24
这将帮助你解决眼前的问题。
var nameIndicator = "my name is ";
var index = inputValue.ToLower().IndexOf(nameIndicator);
if (index == -1)
{
// Not found
}
else
{
var name = inputValue.Substring(index + nameIndicator.Length);
}
变量name
将提取"My name is“后面的任何内容作为名称。
然而,我强烈建议您在这里重新考虑您的方法,因为这很容易出错。如果用户犯了打字错误怎么办?此外,从用户体验的角度来看,没有人想输入“我的名字是XYZ”,当被要求输入姓名时,您只需输入您的姓名。
您所能做的就是简单地询问名称,并获得用户输入作为名称。
备注
当您发布代码示例时,请在无需编辑即可运行的完整示例中发布。如果它太长,可以在这里查看如何发布Minimal, Complete, and Verifiable example。
https://stackoverflow.com/questions/50826132
复制相似问题