我在iOS中有一个NSString示例
NSString * str = @" - 这是一个示例字符串&#34 ;;
我想得到第一个字母。上述情况的结果是字母" T"来自word" This"。字母之前的一些字符" T"不是字母,所以它返回的第一个字母是" T"。
我该如何检索它?如果字符串不包含任何字母,则可以返回nil。
此外,结果可以是NSRange
答案 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;
}