如何在编写代码,能随机出现中文文字 如何编写代码,使一点按钮,在windows窗口中的文本枢中出现三个或四个中文文字,可选择三个或四个,默认为三个。并且保在一个记事本中 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private object[] CreateString(int strlength) { //定义一个数组存储汉字编码的组成元素 string[] str = new string[16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; Random ran = new Random(); //定义一个随机数对象 object[] bytes = new object[strlength]; for (int i = 0; i < strlength; i++) { //获取区位码第一位 int ran1 = ran.Next(11, 14); string str1 = str[ran1].Trim(); //获取区位码第二位并防止数据重复 ran = new Random(ran1 * unchecked((int)DateTime.Now.Ticks) + i); int ran2; if (ran1 == 13) { ran2 = ran.Next(0, 7); } else { ran2 = ran.Next(0, 16); } string str2 = str[ran2].Trim(); //获取区位码第三位 ran = new Random(ran2 * unchecked((int)DateTime.Now.Ticks) + i); int ran3 = ran.Next(10, 16); string str3 = str[ran3].Trim(); //获取区位码第四位 ran = new Random(ran3 * unchecked((int)DateTime.Now.Ticks) + i); int ran4; if (ran3 == 10) { ran4 = ran.Next(1, 16); } else if (ran3 == 15) { ran4 = ran.Next(0, 15); } else { ran4 = ran.Next(0, 16); } string str4 = str[ran4].Trim(); //定义字节变量存储产生的随机汉字区位码 byte byte1 = Convert.ToByte(str1 + str2, 16); byte byte2 = Convert.ToByte(str3 + str4, 16); byte[] stradd = new byte[] { byte1, byte2 }; //将产生的汉字字节放入数组 bytes.SetValue(stradd, i); } return bytes; } private string GetString(int length) { Encoding gb = Encoding.GetEncoding("gb2312"); object[] bytes = CreateString(length); //根据汉字字节解码出中文汉字 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 str = str1 + str2 + str3 + str4; return str; } 随机生成一个2字节的整数,然后强制转换为char,再连接成串 static void Main(string[] args) { char c = (char)0x4FFF; Console.WriteLine(GetRandomString(3)); Console.WriteLine(GetRandomString(4)); Console.WriteLine(GetRandomString(5)); } static Random _random = new Random(DateTime.Now.Millisecond); static string GetRandomString(int length) { string ret = string.Empty; for (int i = 0; i < length; i++) { ret += (char)_random.Next(0x4e00, 0x9521); // 可以在此指定生成汉字所处的范围 } return ret; } 水晶报表 如果邮箱需要ssl加密访问 请问如何用c#发邮件? 关于windows服务在OnStart里面有大数据操作导致windows服务启动失败 c#中即时通讯的登录问题 URL重写后,点翻页报错 有没有谁做过adsl拨号计时的软件 莫名其妙的错误(关于DataSet和DataGrid)?望高手指点! 第一次写程序 编译错误。。。 求教 无从下手啊 Winform编程过时了吗/? 请问C#如何给文件加属性? System.DateTime.Now获取的时间问题 各位数据库大师请进····WINFORM与SQL的问题
private object[] CreateString(int strlength)
{
//定义一个数组存储汉字编码的组成元素
string[] str = new string[16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; Random ran = new Random(); //定义一个随机数对象
object[] bytes = new object[strlength];
for (int i = 0; i < strlength; i++)
{
//获取区位码第一位
int ran1 = ran.Next(11, 14);
string str1 = str[ran1].Trim(); //获取区位码第二位并防止数据重复
ran = new Random(ran1 * unchecked((int)DateTime.Now.Ticks) + i);
int ran2;
if (ran1 == 13)
{
ran2 = ran.Next(0, 7);
}
else
{
ran2 = ran.Next(0, 16);
}
string str2 = str[ran2].Trim(); //获取区位码第三位
ran = new Random(ran2 * unchecked((int)DateTime.Now.Ticks) + i);
int ran3 = ran.Next(10, 16);
string str3 = str[ran3].Trim(); //获取区位码第四位
ran = new Random(ran3 * unchecked((int)DateTime.Now.Ticks) + i);
int ran4;
if (ran3 == 10)
{
ran4 = ran.Next(1, 16);
}
else if (ran3 == 15)
{
ran4 = ran.Next(0, 15);
}
else
{
ran4 = ran.Next(0, 16);
}
string str4 = str[ran4].Trim(); //定义字节变量存储产生的随机汉字区位码
byte byte1 = Convert.ToByte(str1 + str2, 16);
byte byte2 = Convert.ToByte(str3 + str4, 16); byte[] stradd = new byte[] { byte1, byte2 };
//将产生的汉字字节放入数组
bytes.SetValue(stradd, i);
}
return bytes;
} private string GetString(int length)
{
Encoding gb = Encoding.GetEncoding("gb2312");
object[] bytes = CreateString(length); //根据汉字字节解码出中文汉字
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 str = str1 + str2 + str3 + str4;
return str;
}
{
char c = (char)0x4FFF;
Console.WriteLine(GetRandomString(3));
Console.WriteLine(GetRandomString(4));
Console.WriteLine(GetRandomString(5));
} static Random _random = new Random(DateTime.Now.Millisecond);
static string GetRandomString(int length)
{
string ret = string.Empty;
for (int i = 0; i < length; i++)
{
ret += (char)_random.Next(0x4e00, 0x9521); // 可以在此指定生成汉字所处的范围
}
return ret;
}