我怎么说,如果label.text ==任何Int

时间:2016-04-03 20:01:18

标签: string swift if-statement int label

我怎么说:if label.text == any Int

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

如果你有足够的时间来回答另一个很棒的问题: 我该怎么说:if label.text ==任何Int除了42

请将问题分开,并感谢您的帮助

2 个答案:

答案 0 :(得分: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!")
}

答案 1 :(得分:0)

欢迎使用StackOverflow,你的问题不明确,但我会尝试解决,.text的属性label将始终是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"
}