我需要替换数字字符。我的意思是,我想在一个字符串中用bengali聊天取代英文字符。比方说,我有两个阵列,
var enDigits = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
和CCD_ 2。
我在iOS&肯定是在swift。在PHP中,str_replace()
可以很容易地做到这一点。然而,我搜索并找到了swift的stringByReplacingOccurencesOfString
,但无法确定它是否适用于数组。我需要你的建议。
这是一个非常具体的答案,但如果您只是想用一个字符替换一个字符,您可以在源字符串上使用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 ৮৬৭-৫৩০৯
如果你真的想转换成孟加拉语数字,Cocoa提供了一个API来进行ICU转换:
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 ৮৬৭-৫৩০৯