0

我目前正在使用下面的代码来获取子字符串

NSString *s1 = [stringName substringWithRange: NSMakeRange(0, 2)];

NSString *s2 = [stringName substringWithRange: NSMakeRange(2, 4)];

NSString *s3 = [stringName substringWithRange: NSMakeRange(6, [stringName length])];

在这里,如何检查范围是否有效,因为我无法验证字符串的长度,因为它可能在时间上有所不同。请在这个问题上帮助我..

4

2 回答 2

1

对于s3,您从 position 开始,并要求与字符串中的字符数完全相同。但是由于您从位置 6 开始,因此您要求的 6 个字符太多了。你需要做:

NSString *s3 = [stringName substringWithRange: NSMakeRange(6, [stringName length] - 6)];
于 2011-04-15T07:21:29.817 回答
1

正如苹果文档所说..

子字符串范围:

返回一个字符串对象,其中包含给定范围内的接收者字符。

- (NSString *)substringWithRange:(NSRange)aRange

范围

A range. The range must not exceed the bounds of the receiver.

每次构造 NSMakeRange() 时,您都需要检查您指定的范围是否在您的字符串长度内或不...通过使用某些if and else条件

于 2011-04-15T07:25:49.257 回答