【Swift】複数の乱数(文字列)を複数個、生成してみた

 

解説

 

・今回は、乱数(文字)を取り出し、それを変数に代入(連結)していく処理を繰り返す

 

・ characters = "abcdefghijklmnopqrstuvwxyz":乱数に含める材料となる文字を文字列で用意

 

・len = Int(arc4random_uniform(UInt32(characters.count))):charactersの要素番号を

 

・randomCharacters += String(characters[characters.index(characters.startIndex, offsetBy: len)]):先頭の文字からlen番目の要素をrandomCharactersに代入

(これを?回繰り返すことで、?文字の乱数になる)

 

ソースコード

//乱数を格納する配列
var randomArray = [String]()

//乱数の生成に使用する文字
let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

//charactersの中からランダムに選出した要素番号を格納する
var len = Int()

//乱数(文字)をいくつか追加し、最終的に乱数(文字列)となる変数
var randomCharacters = String()

//乱数生成の関数
func createRandom(){
    //9つの要素が格納されるまで続く
    for _ in 1...9 {
        //乱数が9文字になるまで続く
        for _ in 1...9 {
            //charactersの要素番号をランダムに選出
            len = Int(arc4random_uniform(UInt32(characters.count)))
            //aからlen番目の文字をrandomCharactersに追加する
            //1ループ/1文字、追加される
            randomCharacters += String(characters[characters.index(characters.startIndex, 
                                   offsetBy: len)])
        }
        //randomCharactersに格納された9文字の乱数を配列に格納
        randomArray.append(randomCharacters)
        //次回のループのために初期化する
        randomCharacters = ""
        //出力結果
        print(randomArray)
    }
}

//パスワードを生成する
createRandom()

/*
 
 ["56YXk9VW8"]
 ["56YXk9VW8", "lR7UlrB6A"]
 ["56YXk9VW8", "lR7UlrB6A", "kxOXVxFX9"]
 ["56YXk9VW8", "lR7UlrB6A", "kxOXVxFX9", "CCU3mzzH3"]
 ["56YXk9VW8", "lR7UlrB6A", "kxOXVxFX9", "CCU3mzzH3", "NxeGFPvzU"]
 ["56YXk9VW8", "lR7UlrB6A", "kxOXVxFX9", "CCU3mzzH3", "NxeGFPvzU", "EexHuIbGQ"]
 ["56YXk9VW8", "lR7UlrB6A", "kxOXVxFX9", "CCU3mzzH3", "NxeGFPvzU", "EexHuIbGQ", "JDe5SX61v"]
 ["56YXk9VW8", "lR7UlrB6A", "kxOXVxFX9", "CCU3mzzH3", "NxeGFPvzU", "EexHuIbGQ", "JDe5SX61v", "Fc6nsn4Gr"]
 ["56YXk9VW8", "lR7UlrB6A", "kxOXVxFX9", "CCU3mzzH3", "NxeGFPvzU", "EexHuIbGQ", "JDe5SX61v", "Fc6nsn4Gr", "lTPzQm41V"]
 
 */