簡體   English   中英

比較字符串與字符串數組

[英]Compare String against String Array

我目前正在嘗試確定將字符串值與字符串數組進行比較的最佳方法。 這是問題所在...

我正在建立共享同一鍵盤的二進制,十進制和十六進制值之間的轉換器。 我想檢查輸入,並取決於模式,是否允許通過(例如,二進制更僅允許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)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM