日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

c#生成随机位数的汉字字符串

發(fā)布時間:2025/3/17 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#生成随机位数的汉字字符串 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天在網(wǎng)上查了下如何生成隨機(jī)漢字字符串的方法,現(xiàn)在一起分享供大家學(xué)習(xí)和參考。

public? string? aa() {

??????????? Encoding gb = Encoding.GetEncoding("gb2312");

??????????? //調(diào)用函數(shù)產(chǎn)生4個隨機(jī)中文漢字編碼
??????????? object[] bytes = CreateRegionCode(4);

??????????? //根據(jù)漢字編碼的字節(jié)數(shù)組解碼出中文漢字
??????????? 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)
? {
? //定義一個字符串?dāng)?shù)組儲存漢字編碼的組成元素
? 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數(shù)組用來
? object[] bytes=new object[strlength];

? /**//*每循環(huán)一次產(chǎn)生一個含兩個元素的十六進(jìn)制字節(jié)數(shù)組,并將其放入bject數(shù)組中
? 每個漢字有四個區(qū)位碼組成
? 區(qū)位碼第1位和區(qū)位碼第2位作為字節(jié)數(shù)組第一個元素
? 區(qū)位碼第3位和區(qū)位碼第4位作為字節(jié)數(shù)組第二個元素
? */
? for(int i=0;i<strlength;i++)
? {
? //區(qū)位碼第1位
? int r1=rnd.Next(11,14);
? string str_r1=rBase[r1].Trim();

? //區(qū)位碼第2位
? rnd=new Random(r1*unchecked((int)DateTime.Now.Ticks)+i);//更換隨機(jī)數(shù)發(fā)生器的

? //種子避免產(chǎn)生重復(fù)值
? int r2;
? if (r1==13)
? {
? r2=rnd.Next(0,7);
? }
? else
? {
? r2=rnd.Next(0,16);
? }
? string str_r2=rBase[r2].Trim();

? //區(qū)位碼第3位
? rnd=new Random(r2*unchecked((int)DateTime.Now.Ticks)+i);
? int r3=rnd.Next(10,16);
? string str_r3=rBase[r3].Trim();

? //區(qū)位碼第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();

? //定義兩個字節(jié)變量存儲產(chǎn)生的隨機(jī)漢字區(qū)位碼
? byte byte1=Convert.ToByte(str_r1 + str_r2,16);
? byte byte2=Convert.ToByte(str_r3 + str_r4,16);
? //將兩個字節(jié)變量存儲在字節(jié)數(shù)組中
? byte[] str_r=new byte[]{byte1,byte2};

? //將產(chǎn)生的一個漢字的字節(jié)數(shù)組放入object數(shù)組中
? bytes.SetValue(str_r,i);
???
? }

? return bytes;

? }
  }

}

轉(zhuǎn)載于:https://www.cnblogs.com/seoer/archive/2012/01/11/2319241.html

總結(jié)

以上是生活随笔為你收集整理的c#生成随机位数的汉字字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。