首页 > 解决方案 > 在 C# 中根据自定义模式生成随机字符串

问题描述

我希望能够根据用户使用的自定义模式集生成随机字符串Console.ReadLine();

示例:!!!!-##!?-?!!#(! = 数字,# - 大写字母和 ? = 小写字母),然后生成一个字符串并使用返回它Console.WriteLine();

我试图寻找解决方案,但我认为它不符合我的问题。

标签: c#code-generation

解决方案


我们制作了生成大写和小写字母的函数,我们还快速生成了数字,然后我们只需打开传递的“模式”字符串的字符

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(GetStringFromPattern("!!##??##!!"));
    }
    static string GetStringFromPattern(string s)
    {
        string final = String.Empty;
        foreach(char c in s)
        {
            switch (c)
            {
                case '!':
                    Random rng = new Random();
                    final += rng.Next(0, 9);
                    break;
                case '#':
                    final += GenerateLetter(true);
                    break;
                case '?':
                    final += GenerateLetter(false);
                    break;
            }
        }
        return final;
    }

    static char GenerateLetter(bool uppercase)
    {
        Random rng = new Random();
        int letterCode = rng.Next(65, 89);

        if (uppercase)
            letterCode += 32;

        char letter = (char)letterCode;

        return letter;
    }

}

推荐阅读