C#自定义函数NetxtString生成随机字符串
作者:shichen2014 发布时间:2022-06-18 20:43:39
标签:C#,随机,字符串
本文实例展示了C#自定义函数NetxtString实现生成随机字符串的方法,在进行C#项目开发中非常实用!分享给大家供大家参考。
一、生成随机字符串
关键代码如下:
/// <summary>
/// 生成随机字符串
/// </summary>
/// <param name="random">Random</param>
/// <param name="size">字符串长度</param>
/// <param name="lowerCase">字符串是小写</param>
/// <returns>随机字符串</returns>
public static string NetxtString(this Random random, int size, bool lowerCase)
{
StringBuilder _builder = new StringBuilder(size);
int _startChar = lowerCase ? 97 : 65;//65 = A / 97 = a
for (int i = 0; i < size; i++)
_builder.Append((char)(26 * random.NextDouble() + _startChar));
return _builder.ToString();
}
测试代码如下:
static void Main(string[] args)
{
try
{
Random _random = new Random();
for (int i = 0; i < 10; i++)
{
Console.WriteLine(_random.NetxtString(4, false));
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.ReadLine();
}
}
测试结果如下图所示:
二、根据指定字符生成随机字符串
关键代码如下:
/// <summary>
/// 0~9 A~Z字符串
/// </summary>
public static string RandomString_09AZ = "0123456789ABCDEFGHIJKMLNOPQRSTUVWXYZ";
/// <summary>
/// 依据指定字符串来生成随机字符串
/// </summary>
/// <param name="random">Random</param>
/// <param name="randomString">指定字符串</param>
/// <param name="size">字符串长度</param>
/// <param name="lowerCase">字符串是小写</param>
/// <returns>随机字符串</returns>
public static string NetxtString(this Random random, string randomString, int size, bool lowerCase)
{
string _nextString = string.Empty;
if (random != null && !string.IsNullOrEmpty(randomString))
{
StringBuilder _builder = new StringBuilder(size);
int _maxCount = randomString.Length - 1;
for (int i = 0; i < size; i++)
{
int _number = random.Next(0, _maxCount);
_builder.Append(randomString[_number]);
}
_nextString = _builder.ToString();
}
return lowerCase ? _nextString.ToLower() : _nextString.ToUpper();
}
测试代码如下:
static void Main(string[] args)
{
try
{
Random _random = new Random();
string _ramdomString = RandomToolV2.RandomString_09AZ;
for (int i = 0; i < 20; i++)
{
// Console.WriteLine(_random.NetxtString(4, false));
Console.WriteLine(_random.NetxtString(_ramdomString, 4, false));
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.ReadLine();
}
}
代码运行效果如下图所示:
希望本文所述实例对大家的C#学习能够有所帮助!
0
投稿
猜你喜欢
- 目录前言一、技术介绍1.ReentranReadWriteLock是什么?二、源码分析1.ReadLock2.WriteLock三、单元测试
- AbstractDetectingUrlHandlerMapping是通过扫描方式注册Handler,收到请求时由Abstrac
- 在ios7中,苹果的原生态应用几乎都能够通过向右滑动来返回到前一个页面,这样可以避免用户在单手操作时用大拇指去点击那个遥远的返回键(ipho
- 以下内容给大家介绍Android数据存储提供了五种方式:1、SharedPreferences2、文件存储3、SQLite数据库4、Cont
- 一、题目描述题目:模拟一个简单的银行系统,使用两个不同的线程向同一个账户存钱。实现:使用特殊域变量volatile实现同步。二、解题思路创建
- Java读文件修改默认换行符Java默认换行符是'\n'。但有时数据并不以'\n'进行换行方法如下publi
- 在逆向一个Android程序时,如果只是盲目的分析需要阅读N多代码才能找到程序的关键点或Hook点,本文将分享一下如何快速的找到APP程序的
- 由于一个线程的程序,如果调用一个功能是阻塞的,那么就会影响到界面的更新,导致使用人员操作不便。所以往往会引入双线程的工作的方式,主线程负责更
- forword跳转页面的三种方式:1.使用serlvet/** * 使用forward跳转,传递基本类型参数到页面  
- 问题来源一般来说,一个稍微大些的项目都会有一些依赖的Jar包,而在将项目部署到服务器的过程中,如果没有持续集成环境的话,也就是说服务器不支持
- 尽管Java提供了一个可以处理文件的IO操作类。 但是没有一个复制文件的方法。 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时
- 前些日子,组里为了在目前的Android程序里实现基于ListView子项的动画效果,希望将最新的RecyclerView引入到程序中,于是
- 前言众所周知Spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用。文中详
- 关于链表链表是有序的列表链表是以节点的方式来存储每个节点包含data域,next域(指向下一个节点)分带头节点的链表和没有头节点的链表定义一
- 最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快排查步骤1.
- 1、这个方法在GpsNET.JT809Core里来源:https://www.cnblogs.com/cnsend/p/12197982.h
- 条件(也称为条件队列 或条件变量)为线程提供了一个含义,以便在某个状态条件现在可能为 true 的另一个线程通知它之前,一直挂起该线程(即让
- 一、Spring Boot 、 Spring MVC 、Spring对比首先你需要明白一件事情:Spring Boot项目目的并不是替换Sp
- 文件上传下载前台:1. 提交方式:post2. 表单中有文件上传的表单项: <input type=”file” />3. 指定
- 计算机在执行程序时,为了提高性能,编译器和处理器常常会对指令重排,一般分为以下三种:源代码 -> 编译器优化的重排 -> 指令并