Search code examples
iosnsstringalphabet

How to get the first alphabet character of a string in iOS


I have an example NSString in iOS

NSString* str = @"-- This is an example string";

I want to get the first alphabet letter. The result of above situation is letter "T" from word "This". Some characters before letter "T" is not alphabet letter so it returns the first alphabet letter is "T".

How can I retrieve it? If the string not contain any alphabet letter, it can return nil.

Besides, the result can be a NSRange


Solution

  • First create a NSCharecterSet as a global variable and write this code

    -(void)viewDidLoad{
       NSCharacterSet *s = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"]
    s = [s invertedSet];
    NSString *myString = @"--- This is a string";
    NSArray *arrayOfStrings = [myString componentsSeparatedByString:@" "];
    for(int i=0;i<arrayOfStrings.count){
    NSString *current = [arrayOfStrings objectAtIndex:i];
    char c = [self returnCharacter:current];
    if(c == nil){
      //that means first word is not with alphabets;
    }
    else {
    NSLog(@"%c",c);
    //your output.
    }
    
     }
    }
    

    And here is the method

    -(char)returnChracter:(NSString*)string{
    
    NSRange r = [string rangeOfCharacterFromSet:s];
       if (r.location != NSNotFound) {
      NSLog(@"the string contains illegal characters");
    return nil;
        }
    else {
    //string contains all alphabets
       char firstLetter = [string charAtIndex:0];
    return firstLetter;
    }
     }