2012-06-20 142 views
0

我有NSString像「我的名字是」。我想在上次空格後刪除文字。指的是在我想刪除最後一個空間之後出現的任何文本。答案將是我的名字。如果有人知道如何去做,請幫助我。如何刪除最後一個空格後的文本?

回答

8

讓我的名字形成的字符串中使用下列

NSString *str = @"My name is"; 
NSRange range = [str rangeOfString:@" " options:NSBackwardsSearch]; 
NSString *str2 = [str substringToIndex:range.location]; 
+0

謝謝,這是非常有用的:) – python

+0

歡迎:) –

0

最簡單的方法是使用「NSMutableString」而不是「NSString」,然後您可以執行"deleteCharactersInRange:" method,其中「range」參數是要刪除的字符範圍。

0

使用此代碼 對於示例

NSString *foo = @" untrimmed string "; 
    NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
+0

這不回答他的問題! – Anne

0

這將工作,雖然不是最好的方式

NSString *myName = [[NSString alloc] initWithString:@"My Name is."]; 
NSArray *splitComponents = [myName componentsSeparatedByString:@" "]; 
myName = [myName stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@" %@",[splitComponents lastObject]] withString:@""]; 
0

您可以使用此:

NSArray *arr = [yourString componentsSeparatedByString:@" "]; 

然後省略最後一個對象,並創建新的字符串。

0
NSString * [email protected]"My name is"; 
    NSArray *parameters = [str componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" "]]; 
    NSLog(@"%@",[parameters description]); 

    NSRange rangeOfDash = [ str rangeOfString:[parameters lastObject]]; 
    NSString * output = (rangeOfDash.location != NSNotFound) ? [str substringToIndex:rangeOfDash.location-1] : nil; 

    NSLog(@"answer%@",output); 
3
NSString *str = @"My Name is";  
NSArray *ary = [[NSArray alloc]init];  
ary = [str componentsSeparatedByString:@" "]; 
str = [ary objectAtIndex:0]; 
str= [str stringByAppendingFormat:@" %@",[ary objectAtIndex:1]]; 
相關問題