从目标C中的字符串的右侧提取



这似乎是我正在寻找的,但相反。我希望string从右边提取,而不是从左边。给出了从左边提取的例子:

NSString *source = @"0123456789";
NSString *firstFour = [source substringToIndex:4];
Output: "0123"

我正在寻找下面的一个版本,从右边开始工作(下面的不工作)

NSString *source = @"0123456789";
NSString *lastFour = [source substringToIndex:-4];
Output: "6789"

[source substringFromIndex:6];不会工作,因为有时我会得到一个答案是000123456789或456789或6789。在所有情况下,我只需要字符串的最后4个字符,以便我可以将其转换为数字。

一定有比一堆if else语句更好的方法吗?

由于您不确定字符串的长度,因此必须在像这样提取之前检查它:

NSString *source = @"0123456789";
NSNumber *number;
if (source.length>=4) {
    NSString *lastFour=[source substringFromIndex:source.length-4];
    number=@([lastFour integerValue]); //and save it in a number, it can be int or NSInteger as per your need
}
NSLog(@"%@",number);

如果你想要一个需要多次调用的快速方法,创建一个类别:

@implementation NSString (SubstringFromRight)
-(NSString *)substringFromRight:(NSUInteger)from{
    if (self.length<from) {
        return nil;
    }        
    return [self substringFromIndex:self.length-from];
}
@end
NSLog(@"%@",[source1 substringFromRight:4]);
NSString *source = @"0123456789";
NSString *newString = [source substringFromIndex:[source length] - 4];
NSLog(@"%@",newString);

replace

NSString *lastFour = [source substringToIndex:-4];

NSString *lastFour = [source substringFromIndex:[source length] - 4];

返回lastFour string中原始字符串string的最后4个字符。

您可以使用以下代码从字符串中获取最后4个字符。

NSString *last4Characters = [source substringFromIndex:(source.length - 4)];
NSLog(@"Last 4 Characters:%@",last4Characters);
last4Characters=nil;

如果有什么问题请告诉我

相关内容

  • 没有找到相关文章

最新更新