프로그래밍/iOS

[iOS] NSString이 한글인지 아닌지 판별

삶의안식처 2017. 1. 25. 12:04

한글은 unicode기 때문에 cString으로 변환하여 길이를 비교해보면 

NSString의 length와 차이가 있다.

따라서 그렇게 비교 

-(BOOL) checkKoean : (NSString*)string

{

    NSString* firstChar = [string getFirstChar];

    NSString* lastChar = [string getLastChar];

    NSInteger code1 = [firstChar characterAtIndex:0];

    NSInteger code2 = [lastChar characterAtIndex:0];

    if (code1 < 44032 || code1 > 55203 || code2< 44032 || code2 > 55203)

    {

//        NSLog(@"한글이 아닙니다.");

        return NO;

    }


    if(firstChar.length == strlen([firstChar cStringUsingEncoding:NSUTF8StringEncoding]) && lastChar.length == strlen([lastChar cStringUsingEncoding:NSUTF8StringEncoding]))

    {

        return NO;

    }

    // 적어도 단어가 들어와야

    if (strlen([firstChar cStringUsingEncoding:NSUTF8StringEncoding]) < 2 || strlen([lastChar cStringUsingEncoding:NSUTF8StringEncoding]) <2)

    {

        return NO;

    }

    return YES;

}

@implementation NSString (Character)

-(NSString *)getFirstChar

{

    return [self substringWithRange:NSMakeRange(0, 1)];

}

-(NSString *)getLastChar

{

    return [self substringWithRange:NSMakeRange(self.length-1, 1)];

}