【问题标题】:how i can say, if label.text == any Int我怎么说,如果 label.text == any Int
【发布时间】:2016-04-03 20:01:18
【问题描述】:

我怎么说:如果 label.text == any Int

  if label.text == (Any, Int) {
            label1.text = "Might be another Integer"
        }

如果您有足够的时间再回答一个问题,那就太好了: 我怎么说:如果 label.text == 除 42 之外的任何 Int

请将问题分开,谢谢帮助

【问题讨论】:

  • 你的意思是,如果label.textInt?因为label.text == (Any, Int) 暗示了一些完全不同的东西。

标签: string swift if-statement int label


【解决方案1】:

您是否正在寻找这样的东西:

class Label {
    var text: String? = "43"
}

let label = Label()

if let text = label.text, let int = Int(text) where int != 42 {
    print("I'm \(int), not 42!")
}

// prints: I'm 43, not 42!

如果这看起来有点乱,你可以这样包装:

if
    let text = label.text,
    let int = Int(text)
    where int != 42
{
    print("I'm \(int), not 42!")
}

【讨论】:

    【解决方案2】:

    欢迎来到 StackOverflow,您的问题尚不清楚,但我会尝试回答,label 的属性 .text 将始终是 String 类型的对象,因此它永远不会是 Int,但通过阅读您的第二个问题我假设您要检查是否是整数而不是对象 Int,因此您可以创建一个函数来检查字符串是否包含数字:

    function checkIfAStringIsANumber(str:String)->Bool{
            let decimalCharacters = NSCharacterSet.decimalDigitCharacterSet()
            let decimalRange = str.rangeOfCharacterFromSet(decimalCharacters)
    
            if decimalRange != nil {
                return true;
            }
    return false;
    }
    

    并以这种方式使用它:

    if (checkIfAStringIsANumber(label.text)) {
        label1.text = "Label contains an integer value!"
    }
    

    第二个问题: 为了避免一些数字,你可以修改我们之前创建的函数来做这样的事情:

        function checkIfAStringIsANumberWithoutSomeValues(str:String,excludedValues:[Int])->Bool{
    let decimalCharacters = NSCharacterSet.decimalDigitCharacterSet()
    let decimalRange = str.rangeOfCharacterFromSet(decimalCharacters)
    
                    if decimalRange != nil {
                       let intObj = Int(str);
                          if excludedValues.contains(intObj) {
                             return false;
                          }
                        return true;
                    }
                    return false;
            }
    

    你可以这样使用它:

    let excludedValues:[Int] = [42,31,89,101] //Values that you want to exclude, if you want to exclude only 42 simply write [42]
    if(checkIfAStringIsANumberWithoutSomeValues(label.text,excludedValues){
    label1.text = "integer found"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-18
      • 1970-01-01
      • 2022-11-12
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多