如何从 NSRange 中提取整数值?

Posted

技术标签:

【中文标题】如何从 NSRange 中提取整数值?【英文标题】:How to pull an integer value from NSRange? 【发布时间】:2012-08-22 01:56:43 【问题描述】:

我有一个 NSRange,需要在这个 NSRange 的两侧将一个字符串分成两个子字符串。如何从 NSRange 中获取整数值(如索引)?

【问题讨论】:

【参考方案1】:

NSRange 结构由两个整数组成 - locationlength

typedef struct _NSRange 
    NSUInteger location;
    NSUInteger length;
 NSRange;

看起来locationlocation+length 是您要查找的两个表达式 - 左右子字符串的范围如下:

NSRange prefixRange = NSMakeRange(0, myRange.location);
NSUInteger pos =myRange.location+myRange.length;
NSRange suffixRange = NSMakeRange(pos, myString.length - pos);

【讨论】:

【参考方案2】:

我知道这个问题很老,但在 Swift 4(也许更早)中,NSRange 上有新的 upperBoundlowerBound 便利属性:

print(myRange) // Range: 13, 4    
range.lowerBound // 13
range.upperBound // 17

希望对其他人有所帮助。

【讨论】:

以上是关于如何从 NSRange 中提取整数值?的主要内容,如果未能解决你的问题,请参考以下文章

NSRange 从第一次出现到字符串结尾

NSRange : 从 Objective-C 到 Java

NSRegularExpression如何让NSRange超出范围?

在IOS中 NSRange类详解

如何将 Range<String.Index> 转换为 NSRange? [复制]

NSRange 在 for 循环中改变自身