Getting index of a character in NSString with offset & using substring in Objective-C
Asked Answered
A

1

22

I have a string!

   NSString *myString=[NSString stringWithFormat:@"This is my lovely string"];

What I want to do is:

  1. Assuming the first character in the string is at index 0. Go to the 11th character (That is 'l' in the above case), and find the position of first occurring space backwards (In the above string, the position of first occurring space if we go backwards from 'l' is at position 10). Let's call the index of this space 'leSpace' having value 10.
  2. Substring the remaining string to a new string using ...

    [myString substringFromIndex:leSpace]
    

...I hope I have explained well. Please help, can you write a snippet or something to help me do this task?

Ashling answered 7/12, 2011 at 15:48 Comment(0)
M
52
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)aRange

For the options use: NSBackwardsSearch

NSRange range = [myString rangeOfString:@" " options:NSBackwardsSearch range:NSMakeRange(0, 11)];

Example:

NSString *myString=[NSString stringWithFormat:@"This is my lovely string"];
NSRange range = [myString rangeOfString:@" " options:NSBackwardsSearch range:NSMakeRange(0, 11)];
NSLog(@"range.location: %lu", range.location);
NSString *substring = [myString substringFromIndex:range.location+1];
NSLog(@"substring: '%@'", substring);

NSLog output:

range.location: 10
substring: 'lovely string'

Of course there should be error checking that range.location does not equal NSNotFound

Mellifluous answered 7/12, 2011 at 15:52 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.