我需要在If语句中帮助一些运算符...
我正在运行这样的代码
if (statement.Contains("weather") &&
(
statement.Contains("what") || statement.Contains("how")
)
)
{
statement = ("It's " + Weather.Get_Weather("condition") + " outside");
}
但它没有用......任何人都可以帮我解决这个问题,因为我在这段代码中找不到任何错误,我甚至没有这类运算符的经验,例如||
和{ {1}}因为我可以在&&
内使用If Statements
。
我希望声明有天气和什么或如何我可以确认这是一个问题,或者用户要求天气...... 你也可以在这个问题上提出更多想法...
If Statements
这不是通过'how is the weather'
它包含如何和天气足够......
我真的很抱歉我的问题,这是我的问题我不知道If statement
是区分大小写的......
答案 0 :(得分:2)
假设您正在测试的声明实际上是“天气怎么样”,那么您的if statement
正在按预期工作。您的检查是否包含“天气”和“什么”或包含“如何”字样(注意小写)。
由于您的短语不包含“什么”这个词,因此首次检查(对于“天气”和“什么”这两个词)将是错误的。此外,正如单词“How”以大写字母“H”开头,它与“how”不匹配,因此也会返回false,因此不会输入if statement
。
如果你希望你的搜索不区分大小写,那么你也需要考虑这种语言,因为在一些语言中大写的单词在所有小写中都表示同一个单词的不同内容。这是一个类似的question and answer,接受的答案详述如下:
测试字符串段落是否包含字符串单词(谢谢 @QuarterMeister)culture.CompareInfo.IndexOf(段落,单词, CompareOptions.IgnoreCase)> = 0
文化是CultureInfo描述语言的实例 文字写在。
这个解决方案对于定义是透明的 不区分大小写,与语言有关。例如, 英语使用字符I和i作为上部和下部 第九个字母的案例版本,而土耳其语使用 这些字符是其29的第十一和第十二个字母 字母长字母。土耳其大写版本的'i'是 不熟悉的角色'İ'。
因此,字符串tin和TIN在英语中是相同的单词,但是 土耳其语不同的单词。据我所知,一个意思是“精神”和 另一个是拟声词。 (土耳其人,如果我是的话,请纠正我 错了,或建议一个更好的例子)
总结一下,你只能回答'这两个字符串'的问题 如果您知道文本是什么语言,那么相同但在不同情况下 如果你不知道,你将不得不采取行动。鉴于英语 软件霸权,你应该诉诸 CultureInfo.InvariantCulture,因为它会以熟悉的方式出错。