主题:求助!!!C#
woshibai520
[专家分:10] 发布于 2006-09-19 17:06:00
用c# 怎样实现在字符串中随机抽取10个不重复的字符
回复列表 (共20个回复)
沙发
yizhinantian [专家分:640] 发布于 2006-09-21 18:03:00
用随机函数生成下标. 通过下标取字符.
板凳
黄金风格 [专家分:4050] 发布于 2006-09-21 19:31:00
下标不同,可字符可能相同啊!
3 楼
yofei [专家分:10] 发布于 2006-09-24 19:55:00
using System;
using System.Collections.Generic;
using System.Text;
namespace _0_0Chars
{
class Program
{
static void Main(string[] args)
{
Random r;
char[] ch = new char[10];
for (int i = 0; i < ch.Length; i++)
{
r = new Random(i);
ch[i] = Convert.ToChar(r.Next(97,123));
Console.Write(ch[i]);
}
}
}
}
4 楼
woshibai520 [专家分:10] 发布于 2006-09-29 11:43:00
楼上的代码运行起来好象不能显示啊~!@
5 楼
woshibai520 [专家分:10] 发布于 2006-09-30 10:19:00
主要是运行起来每次取的10个随机数都是一样的~!
6 楼
风中物 [专家分:20] 发布于 2006-09-30 11:10:00
把r = new Random(i);中的i去掉
不过可能得到每次输出的结果。。。。。
其实3楼的在for循环中重复定义了r = new Random(i);只要把它代码外移就可以了
7 楼
woshibai520 [专家分:10] 发布于 2006-09-30 11:24:00
大家看看这个代码 帮忙改一下
string str = "用c# 怎样实现在字符串中随机抽取10个不重复的字符";
Random rd = new Random();
List<Char> newChar = new List<char>();
List<int> ln = new List<int>();
int cnt = 0,
rnum =0;
while(true)
{
if(cnt>=10) break;
rnum = rd.Next(0, str.Length - 1);
int l=0;
for (; l < ln.Count; l++)
{
if (ln[l] == rnum) break;
}
if (l < ln.Count) continue;
else
{
newChar.Add(str[rnum]);
ln.Add(rnum);
cnt++;
}
}
return newChar.ToArray();
8 楼
hh982006 [专家分:10] 发布于 2006-10-01 21:54:00
这个程序你看能不能升成
using System;
namespace ConsoleApplication1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
Random myRandom = new Random();
char a = 'A';
for (int i = 0;i<10;i++)
{
char b =(char)((int)a+myRandom.Next(0,26));
Console.WriteLine(b.ToString());
}
}
}
}
9 楼
ren123 [专家分:10] 发布于 2006-10-07 22:02:00
using System;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Random myRandom = new Random();
char a = 'a';//如果是"A"显示的是大写的n个字母,若是“a”显示的是n个小写的字母
int n = Convert.ToInt32(Console.ReadLine());//要求输入字母的个数
for (int i = 0; i < n; i++)
{
char b = (char)((int)a + myRandom.Next(0, 26));
Console.Write(b.ToString());
}
Console.Read();
}
}
}
10 楼
woshibai520 [专家分:10] 发布于 2006-10-08 11:35:00
9楼的 你的循环语句中没有加判断啊~!有重复的出现
我来回复