【问题标题】:Find array element by matching String with wildcard character通过将字符串与通配符匹配来查找数组元素
【发布时间】:2017-08-10 08:20:10
【问题描述】:

我想要一个遍历整个数组的 if 语句,当它找到名称以“Button”开头的元素时为真,之后它可以是任何东西,例如:

if (Array[i].name == "Button*")

因此,例如,当元素的名称为“Button1”或“ButtonBlaBlaBla”时为真,但如果名称不以“Button”开头,例如“1Button”,则为假。

PS:我在团结工作,但我很确定这与它无关,所以我在这里发布。如果有关于相同问题的现有帖子,请链接给我。

【问题讨论】:

  • 感谢您的帮助。
  • 不客气。但顺便说一句,这种名称检查在 Unity 中并不是一个好主意。请尝试附加标签。如果您的按钮被标记为“按钮”(在检查器中设置标签),检查button.CompareTag("Button") 非常快,而且更安全一些,因为您实际上不允许错误标记对象(标签由编辑器存储)。
  • 您还可以检查按钮上的组件:检查是否为button.GetComponent<SpecialButton>() != null,或者更好的是,如果您需要来自该组件的信息,请将其存储在一个变量中,然后检查它是否为空。 (因为在游戏开发中,如果没有原因,你通常不想调用两次函数。)

标签: regex unity3d string-matching


【解决方案1】:

你需要使用StartsWith()

if(Array[i].name.StartsWith("Button"))

【讨论】:

    【解决方案2】:

    检查name.StartsWith("Button") 是否匹配Button*name.EndsWith("Button") 匹配 *Button。要匹配*Button*,请检查name.Contains("Button")

    【讨论】:

      【解决方案3】:

      你有:

      if(Array[i].name.StartsWith ("Button") )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-17
        • 2018-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多