알파벳 무작위로 된 모든 문자의 문자열을 원합니다. 바로 지금, 나는 26 문자의 배열을 변경하고, exchangeObjectAtIndex : 메서드를 사용하여 그들을 섞은 다음, 반환 한 문자열에 각 문자를 추가한다.효율적인 방법으로 임의의 알파벳 문자열을 생성 하시겠습니까?
이렇게하는 것이 더 좋은 방법입니다. 여기 내 코드 :
- (NSString *)shuffledAlphabet {
NSMutableArray * shuffledAlphabet = [NSMutableArray arrayWithArray:@[@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z"]];
for (NSUInteger i = 0; i < [shuffledAlphabet count]; ++i) {
// Select a random element between i and end of array to swap with.
int nElements = [shuffledAlphabet count] - i;
int n = (random() % nElements) + i;
[shuffledAlphabet exchangeObjectAtIndex:i withObjectAtIndex:n];
}
NSString *string = [[NSString alloc] init];
for (NSString *letter in shuffledAlphabet) {
string = [NSString stringWithFormat:@"%@%@",string,letter];
}
return string;
}
임의의 문자 스트링을 원하십니까? 아니면 알파벳 글자의 임의 치환을 원하십니까 (즉, "반복없는 임의의 시퀀스")? - 질문의 제목은 첫 번째를 제안하고 코드는 후자를 제안합니다. –
글자의 반복이나 단순히 섞은 알파벳에 만족합니다. 셔플 된 알파벳이 내가 그 방법을 쓸 때 마음에 떠오른 첫 번째 것이 었습니다. – Joshua
자, 원하는 것을 결정하십시오. 그 중 두 가지는 정말 다릅니다. – erkanyildiz