如何在iOS中获取字符串的第一个字母字符

时间:2015-08-29 15:51:01

标签: ios nsstring alphabet

我在iOS中有一个NSString示例

NSString * str = @" - 这是一个示例字符串&#34 ;;

我想得到第一个字母。上述情况的结果是字母" T"来自word" This"。字母之前的一些字符" T"不是字母,所以它返回的第一个字母是" T"。

我该如何检索它?如果字符串不包含任何字母,则可以返回nil。

此外,结果可以是NSRange

3 个答案:

答案 0 :(得分:2)

NSRange range = [string rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];

答案 1 :(得分:1)

首先创建一个NSCharecterSet作为全局变量并编写此代码

-(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.
}

 }
}

这是方法

-(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;
}
 }

答案 2 :(得分:1)

您可以使用以下功能。传递一个字符串并将第一个字符作为字符串。

-(NSString*)getFirstCharacter:(NSString*)string
{
 for(int i=0;i<string.length;i++)
   {
     unichar firstChar = [string characterAtIndex:i];
     NSCharacterSet *letters = [NSCharacterSet letterCharacterSet];
      if ([letters characterIsMember:firstChar]) {
        return [NSString:stringWithFormat:@"%c",firstChar];
       }
    }

   return nil;
}