为什么我的代码在我的String中找不到数字?

时间:2016-01-04 06:50:37

标签: ios swift

我想检查一下,如果我的字符串包含 ONLY 数字。为此,我尝试:

if resultTitles[indexPath.row].rangeOfCharacterFromSet(badCharacters) == nil {
    let badCharacters = NSCharacterSet.decimalDigitCharacterSet().invertedSet
    print("Index: \(indexPath.row)")
}

虽然有效,但现在还没有。这真的很奇怪。这有什么不对?

2 个答案:

答案 0 :(得分:0)

if语句行或下一行是否出现错误?该错误可能是由于在if语句中使用后声明了badCharacters ,并且因为它已经让你不能改变它(如果它已经存在)。 / p>

答案 1 :(得分:-1)

试试这个:

if resultTitles[indexPath.row].rangeOfCharacter(from: NSCharacterSet.decimalDigits.inverted) == nil {
    print("Index: \(indexPath.row)")
}

检查String是否仅包含数字的替代解决方案:

 CharacterSet.decimalDigits.isSuperset(of: CharacterSet(charactersIn: yourString))

另一种解决方案:

if(Int(yourString!) != nil){
  //String contains only numbers/digits.
}
else {
  // String not contains only numbers.
}