主题:求助!!!C#
			 woshibai520
				 [专家分:10]  发布于 2006-09-19 17:06:00
 woshibai520
				 [专家分:10]  发布于 2006-09-19 17:06:00							
			用c# 怎样实现在字符串中随机抽取10个不重复的字符
						
					 
		
			
回复列表 (共20个回复)
		
								
				沙发
				
					 yizhinantian [专家分:640]  发布于 2006-09-21 18:03:00
yizhinantian [专家分:640]  发布于 2006-09-21 18:03:00				
				用随机函数生成下标. 通过下标取字符.
							 
						
				板凳
				
					 黄金风格 [专家分:4050]  发布于 2006-09-21 19:31:00
黄金风格 [专家分:4050]  发布于 2006-09-21 19:31:00				
				下标不同,可字符可能相同啊!
							 
						
				3 楼
				
					 yofei [专家分:10]  发布于 2006-09-24 19:55:00
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
woshibai520 [专家分:10]  发布于 2006-09-29 11:43:00				
				楼上的代码运行起来好象不能显示啊~!@
							 
						
				5 楼
				
					 woshibai520 [专家分:10]  发布于 2006-09-30 10:19:00
woshibai520 [专家分:10]  发布于 2006-09-30 10:19:00				
				
主要是运行起来每次取的10个随机数都是一样的~!
							 
						
				6 楼
				
					 风中物 [专家分:20]  发布于 2006-09-30 11:10:00
风中物 [专家分: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
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
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
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
woshibai520 [专家分:10]  发布于 2006-10-08 11:35:00				
				9楼的 你的循环语句中没有加判断啊~!有重复的出现
							 
									
			
我来回复