There may be edge cases you must deal with unless you can absolutely guarantee the form of your input. For example, while Cocoa uses lower camel case in most places, it also contains method names like +[NSURL URLWithString:].
-Chad On 9/12/11 7:39 PM, "Conrad Shultz" <con...@synthetiqsolutions.com> thusly spake: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 9/12/11 7:01 AM, Devraj Mukherjee wrote: >> Hi all, >> >> I am trying to use NSScanner to change camel cased strings into >> underscore delimited strings, e.g featuredListingId to >> featured_listing_id > > In addition to the responses you have already received, if you are > using a sufficiently new SDK you can use regexes to accomplish your goal: > > > > NSString *input = @"featuredListingId"; > > NSError *error = nil; > > NSRegularExpression *regex = [NSRegularExpression > regularExpressionWithPattern:@"([a-z])([A-Z])" options:0 error:&error]; > > NSString *result = [[regex stringByReplacingMatchesInString:input > options:0 range:NSMakeRange(0, [input length]) withTemplate:@"$1_$2"] > lowercaseString]; > > > > (Clearly you would need to handle errors, etc., as appropriate for > your situation.) > > Regular expressions typically run slowly in relative terms, so if you > are doing a lot of these conversions you would probably want to > profile performance too. > > > - -- > Conrad Shultz > > Synthetiq Solutions > www.synthetiqsolutions.com > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.7 (Darwin) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iD8DBQFObpg5aOlrz5+0JdURAnrBAJ9kH0BeBVAbp9xKLVQE1RAgR1xMkwCeOwSC > SRZfXZa4Hp28J71FtdcK7TU= > =qLaC > -----END PGP SIGNATURE----- > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/cocoa-dev/chad.hulbert%40xerox.com > > This email sent to chad.hulb...@xerox.com Chad Hulbert Software Engineer Xerox Corporation 800 Phillips Rd Webster, NY 14580 p 585.427.3295 (8*707.3295) _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com