嗨,我如何在 IOS Swift 中用字符串中的波斯数字替换英文数字
"This is a english text with this numbers 09122223231 34322 "
Run Code Online (Sandbox Code Playgroud)
用波斯语中的 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
}
Run Code Online (Sandbox Code Playgroud)
将“farshad 我认为数字 11 33 42 3343 适合您”更改为“farshad 我认为数字 ?? ?? ?? ???? 适合您”
如果您的文本是只有数字字符的字符串,您可以使用此方法:
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!
}
Run Code Online (Sandbox Code Playgroud)
然后你可以将“091233344455”转换为“????????????”
你也可以为 String 编写一个扩展来简化这样的使用
斯威夫特 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
}
}
Run Code Online (Sandbox Code Playgroud)
有时您想将数字转换为托曼/里亚尔...您可以使用此将数字转换为货币
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 ""
}
}
}
Run Code Online (Sandbox Code Playgroud)
用法 :
"091233344455".convertEngNumToPersianNum() //"????????????"
"091233344455".convertToPersian() //"????????????"
"?? ??? ?? 11 33 42 3343 ??? ?????".convertToPersian() //?? ??? ???? ?? ?? ???? ??? ?????
111222333.asCurrency //??????????? ?????
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1735 次 |
| 最近记录: |