我最近开始学习 C#,之前没有任何编程经验。我一直在学习教程,并且正在学习“if”语句。我正在尝试创建一个简单的用户反馈应用程序,它可以提出问题并响应用户输入。
我想做的是使用某种关键字或标签系统或通配符类型的系统(如搜索查询中的 *)来允许对不完全特定的输入做出响应。
例如,在下面的代码中,我使用了 If 和 Else 语句,是否有办法将 userValue 设置为不仅等于“good”或“bad”,还等于这两个词的任意数量的变体, (例如“我很好。”)或者让 If 语句引用关键字或标签列表(可能在其他地方列出,或在外部文件中),以便用户可以输入他们的感觉,以及预定的程序会接受这个短语。
我不打算创建某种形式的人工智能,只是想制作一个有趣的响应式程序。使用数组并以某种方式将其作为 If 语句调用是否可能/明智?或者是否有另一种更有效的方法来为用户输入提供反馈?如果这对这个网站来说太新手了,我很抱歉。我已经在互联网上搜索过,但问题是,我并不完全知道我在搜索什么!
我目前的代码如下:
Console.WriteLine("Hello. How are you?");
string userValue = Console.ReadLine();
string message = "";
if (userValue == "good")
message = "That's good to hear. Do you want a cup of tea?";
else if (userValue == "bad")
message = "I'm sorry to hear that. Shall I make you a coffee?";
else
message = "I don't understand. Do you want a cuppa?";
Console.WriteLine(message);
string userValueTwo = Console.ReadLine();
string messageTwo = "";
if (userValueTwo == "yes")
messageTwo = "I'll get right onto it!";
else if (userValueTwo == "no")
messageTwo = "Right-o. Shutting down...";
Console.WriteLine(messageTwo);
Console.ReadLine();
最佳答案
您可以在此处使用正则表达式:
using System.Text.RegularExpressions;
...
// If the phrase stats/ends or contains the word "good"
if (Regex.IsMatch(userValue, @"(^|\s)good(\s|$)", RegexOptions.IgnoreCase)) {
message = "That's good to hear. Do you want a cup of tea?";
}
关于c# - 使用通配符或 "tags"进行用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23736357/