我目前正在使用以下代码来获取子字符串
NSString *s1 = [stringName substringWithRange: NSMakeRange(0, 2)];
NSString *s2 = [stringName substringWithRange: NSMakeRange(2, 4)];
NSString *s3 = [stringName substringWithRange: NSMakeRange(6, [stringName length])];
这里,如何检查范围是否有效,因为我无法确定字符串的长度,因为它可能会在时间上有所不同。请帮我解决这个问题..
答案 0 :(得分:1)
对于s3
,你从位置开始,并且要求字符串中的字符数与字符串一样多。但是因为你从第6位开始,所以要求6个字符太多了。你需要这样做:
NSString *s3 = [stringName substringWithRange: NSMakeRange(6, [stringName length] - 6)];
答案 1 :(得分:1)
正如苹果文档所说..
<强> substringWithRange:强>
返回一个字符串对象,其中包含位于给定范围内的接收者字符。
- (NSString *)substringWithRange:(NSRange)aRange
<强>人气指数强>
A range. The range must not exceed the bounds of the receiver.
每次构造NSMakeRange()时都需要检查,无论你在String的长度内指定的范围是否......不是......使用一些if and else
条件