4

「連絡先」から電話番号をインポートして保存しNSStringます。この文字列には空白が含まれており、メソッドを使用してそれらを削除しようとしています:

numero = numero.stringByReplacingOccurrencesOfString(" ", withString: "")

この方法は機能しません。


func sostituisci( stringa: NSString! ) -> NSString     
{         
var numero: NSString = ""         
NSLog(stringa) 
numero = ((stringa as String).stringByReplacingOccurrencesOfString(" ", withString: "") as NSString) 
NSLog(numero)

return numero
}

出力は変更されません


ログ

2014-11-05 17:54:50.734 HappyRicarica[33438:3119446] (327) 124-3503
2014-11-05 17:54:50.737 HappyRicarica[33438:3119446] (327) 124-3503
4

4 に答える 4

2

更新: Xcode 7.2 • Swift 2.1.1

extension String {
    var numbersOnly: String {
        return componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: "1234567890")
            .invertedSet)
            .joinWithSeparator("")
    }
    var numbersExempt: String {
        return componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: "1234567890"))
            .joinWithSeparator("")
    }
    var charactersOnly: String {
        return componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").invertedSet).joinWithSeparator("")
    }
    var charactersExempt: String {
        return componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")).joinWithSeparator("")
    }
    func keep(keepIt: String) -> String {
        return componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: keepIt).invertedSet).joinWithSeparator("")
    }
    func exclude(excludeIt: String) -> String {
        return componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: excludeIt)).joinWithSeparator("")
    }
}

let phoneNumber = "+1 (555) 555 - 5555".numbersOnly
print(phoneNumber) // "15555555555"

let excludePlusMinus = "+1 (555) 555-5555".exclude("+-") // "1 (555) 5555555"
let keepWhatever = "+1 (555) 555-5555".keep("()-+") //  "+()-"

関数を使用して、いくつかの調整を加えてスペースのみを減算することもできます。このようにしてみてください:

func sostituisci(stringa: String) -> String {
     return stringa.stringByReplacingOccurrencesOfString(" ", withString: "")
}

sostituisci("1 234 567 8901")   // "12345678901"

または拡張子のように:

extension String {
    var sostituisci: String {
        return stringByReplacingOccurrencesOfString(" ", withString: "")
    }
}
let phoneNumber2 = "1 234 567 8901".sostituisci
于 2014-11-05T18:16:24.970 に答える
0

試しましたか :

let str = "XX XX XX XX XX"
    let separated = str.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
    let finalStr = "".join(separated)
于 2014-11-05T14:39:42.817 に答える