簡體   English   中英

如何快速服用NSRange?

[英]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*$"表示“在點字符'.'之后的零個或多個數字'.' 一直到字符串$的末尾。”

如果substringstringsubstring string ,可以使用componentsSeparatedByString

范例:

var number: String = "144.44";
var numberresult= number.componentsSeparatedByString(".")

那么您可以將組件獲取為:

var num1: String = numberresult [0]
var num2: String = numberresult [1]

希望對你有幫助!

使用rangeOfStringsubstringFromIndex

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM