将字符串与字符串数组进行比较



我目前正在尝试确定将字符串值与字符串数组进行比较的最佳方法。这是问题所在...

我正在构建共享相同键盘的二进制、十进制和十六进制值之间的转换器。我想检查输入并根据模式,让它通过与否(例如,二进制更多只允许 1 和 0,十进制 0-9 和十六进制 0-F)。

我可以通过说:

if (digit == binaryDigits[0]) || (digit == binaryDigits[1]) {
// do something
}

但是当涉及到十进制和十六进制值时,这不是很实用。

基本上,我想要一种方法来根据字符串数组中的所有值检查给定的字符串。

您可以使用 contains() 方法:

var strings = ["Test", "hi"]
if contains(strings , "hi") {
    println("Array contains string")
}

使用stringArray.contains(string)

例:

let cast = ["Vivien", "Marlon", "Kim", "Karl"]
print(cast.contains("Marlon")) 
// Prints "true"
print(cast.contains("James"))  
// Prints "false"

访问 https://developer.apple.com/documentation/swift/array/2945493-contains

这可能不是最优雅的解决方案,但它清晰简洁:-

func isValidHex( input: String ) -> Bool {
    let hset:NSCharacterSet = NSCharacterSet(charactersInString:"0123456789ABCDEF")
    return (countElements(input.stringByTrimmingCharactersInSet(hset)) == 0)
}
func isValidDecimal( input: String ) -> Bool {
    let hset:NSCharacterSet = NSCharacterSet(charactersInString:"0123456789")
    return (countElements(input.stringByTrimmingCharactersInSet(hset)) == 0)
}
func isValidBinary( input: String ) -> Bool {
    let hset:NSCharacterSet = NSCharacterSet(charactersInString:"01")
    return (countElements(input.stringByTrimmingCharactersInSet(hset)) == 0)
}

相关内容

  • 没有找到相关文章

最新更新