C#中PadLeft,PadRight的用法
今天在遇到一个需求的时候,需要一个字符串实现自增。是根据数据库中一个自增的int类型的值,实现自增的。但是要加上前缀。比如,数据库中有一个自增的值,为,2。那么这个自增的值后面的值就位3、4、5、6、7.....100、101、102......所以我要获得 的这个字符串就要是"S0001"、"S0002"、"S0003"........"S0100"、"S0101"、"S0102"......
因为,这个"0"的数量还比较少,最一开始写的一个方法:
public string GetSelfIncrStr()
{
var shopCode = "S";
var newID = ;
if (newID < )
{
shopCode += $"000{newID}";
}
else if (newID < )
{
shopCode += $"00{newID}";
}
else if (newID < )
{
shopCode += $"0{newID}";
}
else
{
shopCode += newID;
}
return shopCode;
}
0的个数少,还可以这样写,如果有十个"0"或者更多的呢?这样写就不方便了。其实这个也可以用设计模式中的责任链模式来写的,不过当0的个数多了,也不好写。设计模式用来搞这个,有点浪费呀!
幸好,C#中字符串有一个方法
public String PadLeft(int totalWidth, char paddingChar);
返回值:
返回一个新字符串,该字符串通过填充右对齐此实例中的字符。它们位于左侧,具有指定的Unicode字符,具有指定的总长度。
参数:
totalWidth:结果字符串中的字符数,等于原始字符串的数目,字符加上任何其他填充字符。
paddingChar:Unicode填充字符。
所以,这个方法就可以改写成如下:
public string GetSelfIncrStr()
{
var newID = ;
return "S" + newID.ToString().PadLeft(, '');
}
这样写起来就方便多了。
还有一个方法:
public String PadRight(int totalWidth);
static string GetStr()
{
var str = "";
return str.PadRight(, '');
}
这个方法得到的结果是10000。
其实,这个任务,是根据数据库中的int类型自增的值,来自增这个字符串的,这个自增的字符串还是表的主键。这个表不是我设计的,个人理解,这种场景还是尽量少的有吧,因为这样的设计并不好。应该从数据库表的设计和使用场景来设计。
不过这两个方法还是蛮好用的。
C#中PadLeft,PadRight的用法的更多相关文章
- C# 中 PadLeft和PadRight 的用法
		C# 中 PadLeft和PadRight 的用法 在 C# 中可以对字符串使用 PadLeft 和 PadRight 进行轻松地补位. PadLeft(int totalWidth, char pa ... 
- Java中的Socket的用法
		Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ... 
- ecshop中foreach的详细用法归纳
		ec模版中foreach的常见用法. foreach 语法: 假如后台:$smarty->assign('test',$test); {foreach from=$test item=list ... 
- matlab中patch函数的用法
		http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ... 
- C#中timer类的用法
		C#中timer类的用法 关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类 ... 
- C#中dynamic的正确用法
		C#中dynamic的正确用法 http://www.cnblogs.com/qiuweiguo/archive/2011/08/03/2125982.html dynamic是FrameWork4 ... 
- C++中typename关键字的用法
		我在我的 薛途的博客 上发表了新的文章,欢迎各位批评指正. C++中typename关键字的用法 
- Guava中Predicate的常见用法
		Guava中Predicate的常见用法 1. Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ... 
- C++中const 的各种用法
		C++中const 关键字的用法 const修饰变量 const 主要用于把一个对象转换成一个常量,例如: ; size = ; // error: assignment of read-only v ... 
随机推荐
- markdown语法之字体、字号、颜色以及背景色
			字体.字号与颜色 html标签:<font> font标签属性: face:字体 size:规定文本的尺寸大小. 可能的值:从 1 到 7 的数字. 浏览器默认值是 3. color: 颜 ... 
- go break的使用
			文章目录 一.踩得坑 二.break的使用 1.break用于for循环 2. break用于select 3.break用于嵌套循环 4.break label . goto label .cont ... 
- Spring源码学习笔记之基于ClassPathXmlApplicationContext进行bean标签解析
			bean 标签在spring的配置文件中, 是非常重要的一个标签, 即便现在boot项目比较流行, 但是还是有必要理解bean标签的解析流程,有助于我们进行 基于注解配置, 也知道各个标签的作用,以及 ... 
- python获取bing地图发布自己的TMS服务(一)下载瓦片
			部分结果 bing地图瓦片使用QuadKey作为命名方式. QuadKey简介 如何计算quadkey 在给定level下,把行号tileY和列号tileX转换为2进制,然后行列交叉存储,再转换为4进 ... 
- [vue]数据来源
			1.组件data函数return的数据 作用域是组件本身 可以在模板template及计算属性computed和方法methods中使用 2.父传子,props数据 来自父级:可以是写死的,或者是来自 ... 
- 28. 实现strStr() (双指针)
			实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返 ... 
- 一次使用pip后的总结
			pip 常用命令及搭配操作 一 .当安装了多个版本python的时候,表示用pythonx 的pip 进行: 1.pythonx -m pip install + 包名 装 包 2.pythonx - ... 
- 毕业半年,买了一台MacBook Pro
			前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 毕业半年,给自己买了一台MacBookPro 1 ... 
- rails 构建 API
			我是来鼓吹使用 Rails 写 API 的. 原文在此: https://labs.kollegorna.se/blog/2015/04/build-an-api-now/ 原文有一个很大的缺陷就是读 ... 
- 让外部的开发机直接访问Kubernetes群集内的服务!
			让外部的开发机直接访问Kubernetes群集内的服务! 1.场景 容器化+K8s编排已经是现在进行时把网站的多个项目设计为云原生(Cloud Native)或老项改造为云原生可以获得诸多能力例如无云 ... 
