我试图创建包含int和string的随机字符串。下面是我如何得到随机字符串和int的类。
151105 11:17:35 INFO (FrameworkServlet.java:488) FrameworkServlet 'rest': initialization started
151105 11:17:35 INFO (AbstractApplicationContext.java:573) Refreshing WebApplicationContext for namespace 'rest-servlet': startup date [Thu Nov 05 11:17:35 CST 2015]; parent: Root WebApplicationContext
151105 11:17:35 INFO (AutowiredAnnotationBeanPostProcessor.java:153) JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
151105 11:17:35 INFO (FrameworkServlet.java:507) FrameworkServlet 'rest': initialization completed in 42 ms
这是我设置这些类以获取随机字符串的方式。
private int RandomNumber1(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
private int RandomNumber2(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
private string RandomStringSatu(int size, bool uppercase)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for (int i = 0; i < size; i++)
{
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
builder.Append(ch);
}
if (uppercase)
return builder.ToString().ToUpper();
return builder.ToString();
}
private string RandomStringDua(int size, bool uppercase)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for (int i = 0; i < size; i++)
{
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
builder.Append(ch);
}
if (uppercase)
return builder.ToString().ToUpper();
return builder.ToString();
}
这是我得到的结果: Result
在图片上可以看到前两个字符与最后两个字符具有相同的值。
现在,问题是我应该怎么做,如果我想得到不同的特征。 因此,输出应该看起来像&#34; D2B1&#34;
由于
答案 0 :(得分:1)
如果您将Random random = new Random();
行从RandomNumber1
和RandomNumber2
移到全局到方法之外,请使用RandomNumber1
和RandomNumber2
中的该rundom字段方法结果将是不同的。
Thanx Jamaxack
答案 1 :(得分:0)
您正在寻找创建新实例时的种子。
Random random = new Random(Guid.NewGuid().GetHashCode());
答案 2 :(得分:0)
在创建Random()实例时生成不同的种子值以生成不同的值。在此处查看文档https://msdn.microsoft.com/en-us/library/ctssatww%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396