C#
1//ランダムな文字列を作成 2 private const string CHARS = "0123456789abcdefghijklmnopqrstuvwxyz"; 3 public static string GenerateRandomNumber(int length) 4 { 5 System.Text.StringBuilder sb = null; 6 sb = new System.Text.StringBuilder(length); 7 System.Random r = null; 8 r = new System.Random(); 9 10 for (int i = 0; i < length; i++) 11 { 12 int pos = r.Next(VillagerID_CHARS.Length); 13 char c = CHARS[pos]; 14 sb.Append(c); 15 } 16 17 Debug.Log(sb); 18 return sb.ToString(); 19 }
こちらの関数を使ってランダムな文字列を返そうとしているのですが、
この処理をfor文で呼び出すと必ず同じ文字列が2つ返されます。
C#
1//呼び出しコード 2void Call(){ 3 List<string> str = new List<string>(); 4 for (int i = 0; i < 4; i++) 5 { 6 str[i] = GenerateRandomNumber(5); 7 Debug.Log(str[i]); 8 } 9}
デバッグ結果(1回目)↓
5j2kv
3vk54
4kco8
4kco8
〃(2回目)↓
9l654
lfm34
lfm34
7ght0
など重複するタイミングも毎回違います。
なぜ重複してしまうのでしょうか。何度もコードを見直したのですが見つからなかったので質問しました。
どなたか回答お願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/01 12:27