1
///
<summary>
2 /// 随机排列字符串
3 /// </summary>
4 /// <param name="sNumber"> 需要排列的字符串 </param>
5 /// <returns> 排列后的字符串 </returns>
6 public static string ArrangeNumber( string sNumber)
7 {
8 int len = sNumber.Length;
9 char [] A = new char [len];
10 char [] B = new char [len];
11 int num = 0 ;
12 int i, j;
13 // 把字符串中的字符放到数组A中
14 for (i = 0 ; i < A.Length; i ++ )
15 A[i] = sNumber[i];
16 Random random = new Random();
17 // 获取随机数,对数组A中的元素重新随机排列,放到数组B中
18 for (i = 0 , j = A.Length - 1 ; i < A.Length; i ++ , j -- )
19 {
20 // 获取一个0到j之间的随机数
21 num = random.Next( 0 , j);
22 // 为B[i]赋值
23 B[i] = A[num];
24 // 交换A[j]于A[num]的值,使得下次取随机数num的时候不再重复
25 A[num] = A[j];
26 A[j] = B[i];
27 }
28 // 把字符型数组重新组成一个字符串
29 string resultStr = new string (B);
30 // 返回随机排列后的字符串
31 return resultStr;
32 }
2 /// 随机排列字符串
3 /// </summary>
4 /// <param name="sNumber"> 需要排列的字符串 </param>
5 /// <returns> 排列后的字符串 </returns>
6 public static string ArrangeNumber( string sNumber)
7 {
8 int len = sNumber.Length;
9 char [] A = new char [len];
10 char [] B = new char [len];
11 int num = 0 ;
12 int i, j;
13 // 把字符串中的字符放到数组A中
14 for (i = 0 ; i < A.Length; i ++ )
15 A[i] = sNumber[i];
16 Random random = new Random();
17 // 获取随机数,对数组A中的元素重新随机排列,放到数组B中
18 for (i = 0 , j = A.Length - 1 ; i < A.Length; i ++ , j -- )
19 {
20 // 获取一个0到j之间的随机数
21 num = random.Next( 0 , j);
22 // 为B[i]赋值
23 B[i] = A[num];
24 // 交换A[j]于A[num]的值,使得下次取随机数num的时候不再重复
25 A[num] = A[j];
26 A[j] = B[i];
27 }
28 // 把字符型数组重新组成一个字符串
29 string resultStr = new string (B);
30 // 返回随机排列后的字符串
31 return resultStr;
32 }