这是代码
Console.WriteLine("Hello!");
string greeting = Console.ReadLine();
if (greeting.ToLower().Contains("hello how are you")) ;
{
Console.WriteLine("I am good");
}
这个代码有一个问题,如果用户说Hello jfjf how fjjffj are you
之类的话,程序仍然会回复他。我需要的是greeting
必须是Hello
,然后是任何字符串的X数量(每个字符串将被一个空格分割(,how are you
,所以像Hello thomas anderson how are you
这样的东西可以工作,但像Hello 8grrgh how jrjr are me you
这样的东西不能工作
我想您需要一个正则表达式:
var r = new Regex("Hello .* how are you");
if(r.IsMatch(myString))
{
Console.WriteLine("I am good");
}
这将匹配"Hello thomas anderson how are you"
,但不匹配"Hello jfjf how fjjffj are you"
。
我在Visual studio上进行了这样的测试,结果很好。
Console.WriteLine("Hello!");
string greeting = Console.ReadLine();
if (greeting.ToLower().StartsWith("hello") && greeting.ToLower().EndsWith("how are you"))
{
Console.WriteLine("I am good");
}
您可以使用以下示例代码实现
private static bool CheckStringExists(string input, string userInput)
{
var inputArray = input.ToLower().Split(' ');
var userInputArray = userInput.ToLower().Split(' ');
int i = 0, j = 0;
while (i < inputArray.Length && j < userInputArray.Length)
{
if (inputArray[i] == userInputArray[j])
{
i++;
}
j++;
}
return i == inputArray.Length;
}
您可以将上述方法称为
if (CheckStringExists("hello how are you", greeting)) ;
{
Console.WriteLine("I am good");
}
这是的工作代码