views:

154

answers:

3

Is it possible to extract a number from a string. For example, I have a string:

my name is shishir and my number is 98890876478

Can I extract on 98890876478 from the above string?

Or if my string is:

my name is shishir and my number is XXX98890876478XXX

In this condition can I extract `98890876478", which is in between of XXX.

Is it posible to do this?

I am getting a message from a server which should be in the format as above, and I need the numeric value for further operations

Hope for a quick a reply, and hope you guys understand what I am trying to say

Edit:

Here's the code I'm trying to use:

NSString *logString = [NSString stringWithFormat:@"%@",theXML]; 
NSString *digits = [logString stringByTrimmingCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]; 
NSLog(@"Message id: %i", [digits intValue]);

which outputs:

2010-05-21 16:37:07.092 sms[5311:207] OK: message-ID XXX110103468XXX
2010-05-21 16:37:07.851 sms[5311:207] Message id: 2

I think its returning two because size==2. I need to retrieve the value between the "XXX".

+1  A: 

You can use regex for this: you want to match \d+, that is, a non-zero sequence of digits.

Related questions


Otherwise, you can just manually go through the characters in the string and find any contiguous sequence of digits.

polygenelubricants
But watch out for users with digits in their usernames... Better look for the "my number is" string first, and start scanning from there.
David Gelhar
+4  A: 

I think what you need is NSScanner, this allows you to take out parts of the string.

e.g.

int n;
NSScanner * scanner = [[NSScanner alloc] initWithString:@"Your string 1234"];
[scanner scanInt:&n];
Anders K.
This is the best approach because using `-[NSString intValue]` can be thrown off by locale.
TechZen
A: 

THIS IS WHAT I FINALLY DONE WITH

NSString *newString = [[theXML componentsSeparatedByCharactersInSet: [[NSCharacterSet decimalDigitCharacterSet] invertedSet]] componentsJoinedByString:@""];
----------------------------------------

NSString *newStr = [newString substringWithRange:NSMakeRange(1, [newString length]-1)];
----------------------------------------

And I am done.

Thanks a lot all of u ... regards shishir

shishir.bobby