c#生成随机位数的汉字字符串
今天在網上查了下如何生成隨機漢字字符串的方法,現在一起分享供大家學習和參考。
public? string? aa() {
??????????? Encoding gb = Encoding.GetEncoding("gb2312");
??????????? //調用函數產生4個隨機中文漢字編碼
??????????? object[] bytes = CreateRegionCode(4);
??????????? //根據漢字編碼的字節數組解碼出中文漢字
??????????? string str1 = gb.GetString((byte[])Convert.ChangeType(bytes[0], typeof(byte[])));
??????????? string str2 = gb.GetString((byte[])Convert.ChangeType(bytes[1], typeof(byte[])));
??????????? string str3 = gb.GetString((byte[])Convert.ChangeType(bytes[2], typeof(byte[])));
??????????? string str4 = gb.GetString((byte[])Convert.ChangeType(bytes[3], typeof(byte[])));
??????????? string a1= str1 +"" +str2 +""+str3 +""+str4 ;
??????????? return a1;
???????
??????? }
?
???????? public static object[] CreateRegionCode(int strlength)
? {
? //定義一個字符串數組儲存漢字編碼的組成元素
? string[] rBase=new String [16]{"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
???
? Random rnd=new Random();
???
? //定義一個object數組用來
? object[] bytes=new object[strlength];
? /**//*每循環一次產生一個含兩個元素的十六進制字節數組,并將其放入bject數組中
? 每個漢字有四個區位碼組成
? 區位碼第1位和區位碼第2位作為字節數組第一個元素
? 區位碼第3位和區位碼第4位作為字節數組第二個元素
? */
? for(int i=0;i<strlength;i++)
? {
? //區位碼第1位
? int r1=rnd.Next(11,14);
? string str_r1=rBase[r1].Trim();
? //區位碼第2位
? rnd=new Random(r1*unchecked((int)DateTime.Now.Ticks)+i);//更換隨機數發生器的
? //種子避免產生重復值
? int r2;
? if (r1==13)
? {
? r2=rnd.Next(0,7);
? }
? else
? {
? r2=rnd.Next(0,16);
? }
? string str_r2=rBase[r2].Trim();
? //區位碼第3位
? rnd=new Random(r2*unchecked((int)DateTime.Now.Ticks)+i);
? int r3=rnd.Next(10,16);
? string str_r3=rBase[r3].Trim();
? //區位碼第4位
? rnd=new Random(r3*unchecked((int)DateTime.Now.Ticks)+i);
? int r4;
? if (r3==10)
? {
? r4=rnd.Next(1,16);
? }
? else if (r3==15)
? {
? r4=rnd.Next(0,15);
? }
? else
? {
? r4=rnd.Next(0,16);
? }
? string str_r4=rBase[r4].Trim();
? //定義兩個字節變量存儲產生的隨機漢字區位碼
? byte byte1=Convert.ToByte(str_r1 + str_r2,16);
? byte byte2=Convert.ToByte(str_r3 + str_r4,16);
? //將兩個字節變量存儲在字節數組中
? byte[] str_r=new byte[]{byte1,byte2};
? //將產生的一個漢字的字節數組放入object數組中
? bytes.SetValue(str_r,i);
???
? }
? return bytes;
? }
}
}
轉載于:https://www.cnblogs.com/seoer/archive/2012/01/11/2319241.html
總結
以上是生活随笔為你收集整理的c#生成随机位数的汉字字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring基于IOC容器基本原理
- 下一篇: MRI图像右心室分割