更改英语数字以文本斯威夫特波斯数字,IOS
问题描述:
嗨,我如何可以替换波斯数字英文数字的字符串中的IOS斯威夫特更改英语数字以文本斯威夫特波斯数字,IOS
"This is a english text with this numbers 09122223231 34322 "
答
波斯语
其EQ替换字符串中的数字func convertToPersian(inputStr:String)-> String {
let numbersDictionary : Dictionary = ["0" : "۰","1" : "۱", "2" : "۲", "3" : "۳", "4" : "۴", "5" : "۵", "6" : "۶", "7" : "۷", "8" : "۸", "9" : "۹"]
var str : String = inputStr
for (key,value) in numbersDictionary {
str = str.replacingOccurrences(of: key, with: value)
}
return str
}
这种变化“farshad我觉得11号33 42 3343是适合你”到“farshad我觉得11号33 42 3343是适合你”
如果你的文字,只有numbe字符串[R字符,你可以使用这个方法:
func convertEngNumToPersianNum(inputStr:String)->String{
let format = NumberFormatter()
format.locale = Locale(identifier: "fa_IR")
let number = format.number(from: inputStr)
let faNumber = format.string(from: number!)
return faNumber!
}
,那么你可以将“091233344455”到“091233344455”
你也可以写一个扩展的字符串,以简化使用这样的事情
SWIFT 3
extension String {
func convertEngNumToPersianNum()->String{
let format = NumberFormatter()
format.locale = Locale(identifier: "fa_IR")
let number = format.number(from: self)
let faNumber = format.string(from: number!)
return faNumber!
}
func convertToPersian()-> String {
let numbersDictionary : Dictionary = ["0" : "۰","1" : "۱", "2" : "۲", "3" : "۳", "4" : "۴", "5" : "۵", "6" : "۶", "7" : "۷", "8" : "۸", "9" : "۹"]
var str : String = self
for (key,value) in numbersDictionary {
str = str.replacingOccurrences(of: key, with: value)
}
return str
}
}
你想转换数要托曼/里亚尔有些时候...... 你可以用它来数转换为货币
extension Int {
var asCurrency:String {
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = Locale(identifier: "fa_IR")
formatter.currencySymbol=""
if(self != 0) {
return ("\(formatter.string(from: self as NSNumber)!) تومان"
}
else{
return ""
}
}
}
用法:
"091233344455".convertEngNumToPersianNum() //"۰۹۱۲۳۳۳۴۴۴۵۵"
"091233344455".convertToPersian() //"۰۹۱۲۳۳۳۴۴۴۵۵"
"به نظر من 11 33 42 3343 عدد خوبیه".convertToPersian() //به نظر من۱۱ ۳۳ ۴۲ ۳۳۴۳ عدد خوبیه
111222333.asCurrency //۱۱۱،۲۲۲،۳۳۳ تومان
答
一个小功能,以英文数字转换为波斯语: -
func convertEngNumToPersianNum(num: String)->String{
//let number = NSNumber(value: Int(num)!)
let format = NumberFormatter()
format.locale = Locale(identifier: "fa_IR")
let number = format.number(from: num)
let faNumber = format.string(from: number!)
return faNumber!
}
let string = "This is a english text with this numbers 09122223231 34322 "
if let number = Int(string.components(separatedBy: CharacterSet.decimalDigits.inverted).joined()) {
let perNum = convertEngNumToPersianNum(num: String(number))
print(perNum)
}
嗨。请阅读[如何提问](https://stackoverflow.com/help/how-to-ask),然后分享[最小,完整和可验证示例](https://stackoverflow.com/help/mcve)你的代码或者你迄今为止所做的或尝试解决的问题。 –