2014-10-16 37 views
0

我需要替換數字字符。我的意思是我想用字符串替換英文字符與孟加拉聊天。比方說,我有兩個陣列,Swift,stringByReplacingOccurencesOfString並替換數組

var enDigits = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]var bnDigits = ["১", "২", "৩", "৪", "৫", "৬", "৭", "৮", "৯", "০"]

我很快在iOS中全新。在PHP中,str_replace()可以輕鬆完成。然而,我搜索並發現stringByReplacingOccurencesOfString爲快速,但不能弄清楚,如果這可以與數組一起工作。我需要你的建議。

回答

4

這是一個非常明確的答案,但如果你只是尋找替代字符的字符,你可以使用map功能上源字符串,像這樣的:如果你真的是

let enDigits: [Character] = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"] 
let bnDigits: [Character] = ["১", "২", "৩", "৪", "৫", "৬", "৭", "৮", "৯", "০"] 

let enString = "Jenny's number is 867-5309" 
let bnString = String(map(enString, { ch in 
    if let index = find(enDigits, ch) { 
     return bnDigits[index] 
    } 
    return ch 
})) 
// Jenny's number is ৮৬৭-৫৩০৯ 
+0

優秀。像魅力:)感謝 – IFightCode 2014-10-16 16:09:00

2

希望轉換成孟加拉語數字,可可提供了這樣做ICU transforms的API:

var string = "Jenny's number is 867-5309" 
let transform = "[:Number:]; Any-Latin; Latin-Bengali" 

let cfstr = NSMutableString(string: String(string)) as CFMutableString 
var range = CFRangeMake(0, CFStringGetLength(cfstr)) 
CFStringTransform(cfstr, &range, ((transform as NSString) as CFString), 0) 

println(cfstr) // Jenny's number is ৮৬৭-৫৩০৯ 
+0

好!嘿,我還記得讀過一篇關於'CFStringTransform'的文章(http://nshipster.com/cfstringtransform/)... – 2014-10-16 16:51:16