c# - 使用通配符或 "tags"进行用户输入

标签 c# if-statement wildcard

我最近开始学习 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/

相关文章:

c# - 如何在 Unity 中创建显示列表列表的自定义检查器?

VB.NET - 如果字符串包含 "value1"或 "value2"

linux - awk 中的变量操作

apache - Xampp 虚拟主机 : Wildcard domains and sub-domains

c# - Windows Phone 上的 Reactive Extensions 错误

c# - 将 SocketError 值转换为字符串消息

c# - 网络应用程序的设计帮助?

c++ - 有没有办法将 if 语句应用于 c++ 中的所有变量

search - Solr 中的通配符搜索

c# - 带通配符的 FTP 目录部分列表