当生成的字符串看起来相同时,即使多次调用生成器,也会出现随机字符串生成器遇到的常见问题。这个问题源于函数内初始化生成器,导致重复生成同一组随机值。
解决方案为了确保随机字符串不同,Random 实例应该在函数外部创建,在程序的整个生命周期中都可以访问。通过这样做,实例可以保留其状态,从而防止生成相同的字符串。这是代码的更新版本:private static Random random = new Random((int)DateTime.Now.Ticks); //thanks to McAden private string RandomString(int size) { StringBuilder builder = new StringBuilder(); char ch; for (int i = 0; i < size; i++) { ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))); builder.Append(ch); } return builder.ToString(); } // get 1st random string string Rand1 = RandomString(4); // get 2nd random string string Rand2 = RandomString(4); // create full rand string string docNum = Rand1 + "-" + Rand2;
以上是为什么我的随机字符串生成器不断返回相同的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!