美文网首页程序员
生成八位提取码,至少包含一位特殊字符

生成八位提取码,至少包含一位特殊字符

作者: 墨_辰 | 来源:发表于2018-05-11 10:05 被阅读0次

今天刚看到的,要求我把它改成不包含特殊字符的。我觉得还是原来的这个有意义,记录一下。

-(NSString *)getRandom8TakeCode {
    NSArray *changeArray = [[NSArray alloc] initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"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",@"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",@"!",@"@",@"#",@"$",@"^",@"&",@"*",@"-",@"+",nil];
    NSArray *specailArray=[[NSArray alloc]initWithObjects:@"!",@"@",@"#",@"$",@"^",@"&",@"*",@"-",@"+", nil];
    NSMutableString *changeString = [[NSMutableString alloc] initWithCapacity:8];
    
    NSInteger specialIndex=arc4random()%(7);
    NSInteger specialArrayIndex=arc4random()%([specailArray count] - 1);
    for(int i = 0; i < 8; i++)
    {
        if (i==specialIndex) {
            changeString = (NSMutableString *)[changeString stringByAppendingString:[specailArray objectAtIndex:specialArrayIndex]];
            continue;
        }
        NSInteger index = arc4random() % ([changeArray count] - 1);
        changeString = (NSMutableString *)[changeString stringByAppendingString:[changeArray objectAtIndex:index]];
    }
    
    return changeString;
}

相关文章

网友评论

    本文标题:生成八位提取码,至少包含一位特殊字符

    本文链接:https://www.haomeiwen.com/subject/fodmrftx.html