我目前正在尝试确定将字符串值与字符串数组进行比较的最佳方法。这是问题......
我正在构建一个二进制,十进制和十六进制值之间的转换器,共享相同的键盘。我想检查输入并根据模式,让它通过或不通过(例如二进制更多只允许1和0,十进制0-9和十六进制0-F)。
我可以这样说:
if (digit == binaryDigits[0]) || (digit == binaryDigits[1]) {
// do something
}
但是当涉及十进制和十六进制值时,这不太实用。
基本上我想要一种方法来检查String String中所有值的给定String。
答案 0 :(得分:5)
您可以使用contains()
方法:
var strings = ["Test", "hi"]
if contains(strings , "hi") {
println("Array contains string")
}
答案 1 :(得分:2)
使用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
答案 2 :(得分:0)
这可能不是最优雅的解决方案,但它清晰简洁: -
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)
}