我如何检查某物是否包含 XY,但它也可以是 XZY?
How do i check if something contains XY, but it can also be 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 数量的任何字符串(其中每个字符串将被 space 分割),how are you
,所以像 Hello thomas anderson how are you
会起作用,但像 Hello 8grrgh how jrjr are me you
这样的东西不会起作用
您可以使用下面的示例代码来实现
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");
}
这是工作代码here
我想你为此需要一个正则表达式:
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");
}
这是代码
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 数量的任何字符串(其中每个字符串将被 space 分割),how are you
,所以像 Hello thomas anderson how are you
会起作用,但像 Hello 8grrgh how jrjr are me you
这样的东西不会起作用
您可以使用下面的示例代码来实现
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");
}
这是工作代码here
我想你为此需要一个正则表达式:
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");
}