2010-12-20 193 views
1

如果存在像“com.mycompany.purchase1”这样的NSString如何仅获取purchase1。字符串操作

NSString *mainString = @"com.mycompany.purchase1"; 

-(NSString*)getLastComponent : (NSString*) mainString 
{ 
NSString *string; 
//Implementation 
return string;//It should return only "purchase1" 
} 

我尝试使用lastPathComponent,pathExtension并且还我不能使用substringToIndex由于串可以是不同长度的。

回答

7

不要donkim的答案,因为他是正确的。仅仅只是我会用

-(NSString*)lastComponentOfString:(NSString*)string separatedByString:(NSString*)separator 
{ 
    return [[string componentsSeparatedByString:separator] lastObject]; 
} 

使用

NSString *string = @"com.mycompany.purchase1"; 
[... lastComponentOfString:string separatedByString:@"."]; 
+0

+1确定那么这是内置函数用于查找字符串中的最后一个组件。 – Ishu 2010-12-20 06:03:42

2

您可以使用NSString中的- (NSArray *)componentsSeparatedByString:(NSString *)separator方法。检查看看NSArray的计数是否大于0,它的最后一个分量([array objectAtIndex:[array count] - 1])将会是你想要的。

+1

如果你只是使用'lastObject'对返回'NSArray'实施,如果数组为空,它会自动返回'nil'。方便! :) – 2010-12-20 07:14:28

+0

不错,很高兴知道!谢谢:) – donkim 2010-12-20 07:15:33

0
-(NSString*)getLastComponent : (NSString*) mainString 
{ 
    NSString *string1; 

    NSArray *arr=[mainString componentsSeparatedByString:@"."]; 
    string1=[arr objectAtIndex:([arr count]-1)]; 
    return string; 
} 

使用上面的代码。