如何检查某个东西是否包含XY,但也可以是XZY



这是代码

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

这是的工作代码

相关内容

  • 没有找到相关文章

最新更新