[英]How to take NSRange in swift?
我對快速語言非常陌生。 我正在執行一些業務邏輯,需要從給定的String中獲取NSRange
。
這是我的要求,給定的金額=“ NSRange
”僅需要NSRange
的一部分,即“”之后。
有沒有可用的API來執行此操作?
您可以進行基於正則表達式的搜索來找到范圍:
let str : NSString = "123.45"
let rng : NSRange = str.range("(?<=[.])\\d*$", options: .RegularExpressionSearch)
正則表達式"(?<=[.])\\\\d*$"
表示“在點字符'.'
之后的零個或多個數字'.'
一直到字符串$
的末尾。”
如果substring
定string
的substring
string
,可以使用componentsSeparatedByString
范例:
var number: String = "144.44";
var numberresult= number.componentsSeparatedByString(".")
那么您可以將組件獲取為:
var num1: String = numberresult [0]
var num2: String = numberresult [1]
希望對你有幫助!
使用rangeOfString
和substringFromIndex
:
let string = "123.45"
if let index = string.rangeOfString(".") {
let cents = string.substringFromIndex(index.endIndex)
print("\(cents)")
}
使用Swift Ranges而不是NSRange的另一個版本
定義返回可選范圍的函數:
func centsRangeFromString(str: String) -> Range<String.Index>? {
let characters = str.characters
guard let dotIndex = characters.indexOf(".") else { return nil }
return Range(dotIndex.successor() ..< characters.endIndex)
}
您可以使用以下方法進行測試:
let r = centsRangeFromString(str)
// I don't recommend force unwrapping here, but this is just an example.
let cents = str.substringWithRange(r!)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.