c# - 在 C# 中根据自定义模式生成随机字符串
问题描述
我希望能够根据用户使用的自定义模式集生成随机字符串Console.ReadLine();
示例:!!!!-##!?-?!!#(! = 数字,# - 大写字母和 ? = 小写字母),然后生成一个字符串并使用返回它Console.WriteLine();
我试图寻找解决方案,但我认为它不符合我的问题。
解决方案
我们制作了生成大写和小写字母的函数,我们还快速生成了数字,然后我们只需打开传递的“模式”字符串的字符
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;
}
}
推荐阅读
- vue.js - “错误”未在实例上定义,但在渲染期间引用
- curl - 带有 curl 的 Linux 脚本,用于检查以递归方式检查 Web 服务是否已启动
- c# - EF6 - EmailAddress 属性不会自动验证
- python - 尝试使用 python 将 kdb 转换为 csv,除一列外,所有内容都正确转换
- spring - 当@Controller 中的方法是最终方法时,@Autowired 变量为空
- java - 排序对象的对象
- c++ - 无法使用 Lua 中的 C++ 模块
- ios - 如何将 ViewController 呈现为具有透明背景的弹出式 VC?
- twilio - 想要使用 twilio javascript SDK 创建出站电话会议
- html - 带有post方法的Laravel表单未提交