2015-11-05 35 views
0

我試圖創建包含int和string的隨機字符串。下面是我如何獲得隨機字符串和整型的類。兩個隨機類返回相同的值

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(); 
    } 

這裏是我設置這些類以獲得隨機字符串的方式。

StringBuilder sb = new StringBuilder(); 
       sb.Append(RandomStringSatu(1, true)); 
       sb.Append(RandomNumber1(1, 9)); 
       sb.Append(RandomStringDua(1, true)); 
       sb.Append(RandomNumber2(1, 9)); 

       string rdmKode = sb.ToString(); 

這是我得到的結果是: Result

上,您可以看到,前兩個caracters與過去兩年相同卡拉科特價值的圖片。

現在,問題是我該怎麼做,如果我想獲得不同的caracter。 因此,輸出應該看起來像「D2B1」

感謝

+1

這不是Java代碼。 – Andreas

+0

我已經刪除了java標籤 –

回答

0

使用的答案從這個stackoverflow question

您正在尋找當你創建一個新的實例種子。

Random random = new Random(Guid.NewGuid().GetHashCode()); 
+0

謝謝...這是工作.. –

+2

@FikriHailal它的工作原理,但它不是一個好的解決方案。 – phoog

+0

@phoog:你能告訴我另一種解決方案嗎? –

1

如果您移動Random random = new Random();線從RandomNumber1RandomNumber2全球到的方法之外,不是使用在該RandomNumber1RandomNumber2方法rundom場的結果將是differente。

Thanx Jamaxack