2014-09-24 5 views
2

다음 NSCharacterSet을 가지고 있으며 해당 문자 집합에 유효한 임의의 문자열을 생성하려고합니다.NSCharacterSet에서 임의의 문자열 생성

[NSCharacterSet characterSetWithCharactersInString:]은 문자열에서 문자 세트를 생성합니다. 나는 그 반대의 방식을 원한다. 뭔가 같은 [NSString stringWithCharacterSet:]

+0

글쎄, 무작위로 'unichar'값을 생성하고 세트의 멤버십을 테스트해야합니다. 가능한 범위를 찾기 위해 haveMemberInPlane을 사용하여 먼저 "센서스"를 수행하여 일을 빠르게 진행할 수 있습니다. –

+0

"gimme the code"라고하는 것 이상을해야합니다. –

답변

3

나는 길이가 길거나 특정 인덱스에서 문자에 액세스하는 편리한 방법을 제공하지 않기 때문에 NSCharacterSet이 유효한 문자 목록을 저장하는 가장 좋은 방법이라고 생각하지 않습니다. 대신 NSString을 사용하십시오 :

+ (NSString *)randomStringFromCharacters:(NSString *)chars 
           ofLength:(NSUInteger)length 
{ 
    unichar str[length]; 
    for (NSUInteger i = 0; i < length; i++) 
     str[i] = [chars characterAtIndex:arc4random() % [chars length]]; 

    return [NSString stringWithCharacters:str length:length]; 

} 
+0

그리고 * 문자 집합으로 시작하는 * 문자가있는 경우 집합을 한 번 회전하여 유효한 문자 목록을 작성한 다음 해당 목록에서 선택할 수 있습니다. –