【问题标题】:If Statement not Working right [closed]如果语句不起作用[关闭]
【发布时间】:2016-07-03 20:51:28
【问题描述】:

我需要一些关于 If 语句中某些运算符的帮助...

我正在运行这样的代码

if (statement.Contains("weather") &&
    (
        statement.Contains("what") || statement.Contains("how")
    )
   )
{
    statement = ("It's " + Weather.Get_Weather("condition") + " outside");
}

但它不起作用...任何人都可以帮我解决这个问题,因为我在这段代码中找不到任何错误,而且我什至对 ||&& 等此类运算符没有太多经验因为我可以在If Statements 中使用If Statements

我希望声明包含天气和内容或方式,以便我可以确认这是一个问题,或者用户正在询问天气...... 您也可以就此提出更多想法...

'how is the weather' 这不是通过If statement 它包含足够的方式和天气......

我真的很抱歉我的问题,这是我的问题我不知道Contains() 区分大小写...

【问题讨论】:

  • 什么是班级的小麦?什么不起作用?向我们提供更多信息以帮助您!
  • 你的说法看起来是对的,到底是什么问题?
  • 告诉我们,在 if 语句之前语句变量实际发生了什么,也许问题出在那儿
  • 无效的statement 的值是多少?也许您需要不区分大小写的搜索?
  • 另外,尝试使用ToLower().Contains("weather")

标签: c# if-statement operators


【解决方案1】:

假设您正在测试的语句实际上是“天气如何”,那么您的 if statement 正在按预期工作。您的检查是查看语句是否包含“天气”和“什么”或包含“如何”一词(注意小写)。

由于您的短语不包含单词“what”,因此第一次检查(对于单词“weather”和“what”)将是错误的。此外,由于单词“How”以大写“H”开头,它不会与“how”匹配,因此也会返回 false,因此不会输入 if statement

如果您希望搜索不区分大小写,那么您还需要考虑语言,因为在某些语言中全部大写的单词与全部小写的相同单词的含义不同。这是一个类似的question and answer,为完整起见,接受了以下详细信息:

测试字符串段落是否包含字符串单词(谢谢 @QuarterMeister)culture.CompareInfo.IndexOf(段落,单词, CompareOptions.IgnoreCase) >= 0

其中文化是描述语言的 CultureInfo 实例 文本是用什么写的。

这个解决方案对 不区分大小写,这取决于语言。例如, 英语使用字符 i 和 i 表示大写和小写 第九个字母的大小写版本,而土耳其语使用 这些字符代表其 29 的第十一个和第十二个字母 字母长的字母表。土耳其语大写版本的“i”是 不熟悉的字符“İ”。

因此字符串 tin 和 TIN 在英语中是同一个单词,但是 土耳其语中的不同单词。据我了解,one 的意思是“精神”和 另一个是拟声词。 (土耳其人,如果我是,请纠正我 错了,或者建议一个更好的例子)

总而言之,您只能回答“这两个字符串是 相同但在不同情况下'如果您知道文本是什么语言 在。如果你不知道,你将不得不下注。鉴于英语 软件霸权,您可能应该诉诸 CultureInfo.InvariantCulture,因为它会以熟悉的方式出错。

【讨论】:

  • 我做错了我改变了我对这个 If 语句的使用我的意思是它首先只是 if (statement.Contains("weather")) 但后来我添加了这些 What and How 但忘记更改变量 statement 你也应该已经注意到了xD,但没关系我想通了......
猜你喜欢
  • 2013-08-31
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
  • 2013-06-20
  • 2013-09-04
相关资源
最近更新 更多