回 帖 发 新 帖 刷新版面

主题:求助!!!C#

用c# 怎样实现在字符串中随机抽取10个不重复的字符

回复列表 (共20个回复)

11 楼

是不是还应该判断这个字符串本身就有10个不同的字符???

12 楼

  

13 楼


请问一下十楼的该怎样去掉重复的字符呢?

14 楼


请问一下十楼的该怎样去掉重复的字符呢?

15 楼


请问一下十楼的去掉重复的字符该怎样的实现?

16 楼

using System;
using System.Collections.Generic;
using System.Text;

namespace _0_0Chars
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random();
            char[] ch = new char[10];
            for (int i = 0; i < ch.Length; i++)
            {
              
               ch[i] = Convert.ToChar(r.Next(97, 123));

                Console.Write(ch[i]);
            }
            Console.Read();

        }
    }
}
这个应该可以的
我再我的电脑上调试了可以的

17 楼


还是有重复的字符

18 楼


using System;
using System.Collections;
using System.Text;

namespace ConsoleApplication3
{
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            string strOne= "零,一,二,三,四,五,六,七,八,九,十,百,千,万,亿,兆";
            string[] al = new string[16];
            string[] old =new string[10];
            int tmp = 0;

            Random rd = new Random();
            int k =rd.Next(0,strOne.Length-1);
                al= strOne.Split(',');

            for (int j = 0; j < 10; j++)
            {
            NO10:
                tmp = rd.Next(al.Length);
                string tmp02 = al[tmp].ToString();

                for(int i = 0;i <= j ; i++)
                {
                    if(" " + tmp02.ToString() !=  (" "+old[i]).ToString() && i==j)
                    {
                        old[j] = tmp02.ToString();
                    }
                    if(tmp02.ToString() == old[i].ToString() && i!=j)
                    {
                        tmp = rd.Next(al.Length);
                        tmp02 = al[tmp].ToString();
                        goto NO10;
                    }
                }
            }

            string strOut= string.Empty;

            for(int o = 0; o < old.Length ; o++)
            {
                strOut +=old[o]+";";
            }
            System.Console.WriteLine(strOut);
            System.Console.ReadLine();

        }

    }
}

19 楼

Random r = new Random();
            r.Next();

20 楼

char []ch=new ch[10];
Random r=new Romdom(Datetime.Now.Mil);
for(int i=0;i<10;i++)
{
   ch[i]=r.next(0,26);
}
注:Datetime.Now.Mil这句话可能单词写得不对,但是用C#工具可以找到。。。

这是给一个随机种子。。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册