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 ...
 
随机推荐
- 全面解析JVM加载中初始化的时机
			
JVM类加载过程 JVM类加载过程分为几个阶段,分别是加载.验证.准备.解析和初始化.加载是把二进制字节码载入内存,验证是校验字节流中包含的信息是否符合当要求,准备是为静态变量分配内存并设置静态变量初 ...
 - 化鲲为鹏,我有话说 ,鲲鹏ARM架构的优势
			
首先我在想为什么会用到鲲鹏,我个人认为最重要的还是要掌握自主研发的能力,打破国外关键技术的封锁.鲲鹏芯片完全是华为于自主设计内核,华为云Kunpeng服务器关键计算芯片全自研,提供产品可持续供应能力. ...
 - 转:<context:component-scan>使用说明
			
在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类 ...
 - Spring bean 初始化失败
			
在一个*context.xml 配置文件 A 中, 有个定义的bean B, 把 A 添加到 application-context.xml 中,发现B不能正常初始化. 解决办法: 添加 <co ...
 - Bomb后端云使用
			
Bomb是后台云托管工具,在Bomb官网注册会员,即可免费使用后台数据库服务.https://www.bmob.cn/app/list 创建应用后,在设置里获取密钥.根据官方文档集成. 在集成后运行时 ...
 - ios 测试网络是否连接
			
转自:http://blog.csdn.net/lwq421336220/article/details/16982857 - (BOOL) connectedToNetwork { //创建零地址, ...
 - python光标图片获取
			
# -*- coding:utf-8 -*- import win32api import win32gui,win32ui import time while True : time.sleep(1 ...
 - k近邻聚类简介
			
简介 在所有机器学习算法中,k近邻(K-Nearest Neighbors,KNN)相对是比较简单的. 尽管它很简单,但事实证明它在某些任务中非常有效,甚至更好.它可以用于分类和回归问题! 然而,它更 ...
 - JSP+Servlet 实现:理财产品信息管理系统
			
一.接业务,作分析 1.大致业务要求 1.1 使用 JSP+Servlet 实现理财产品信息管理系统,MySQL5.5 作为后台数据库,实现查看理财 和增加理财功能 1.2 查询页面效果图 1.3 添 ...
 - 【H5】344- 微信 H5 页面兼容性解决方案
			
点击上方"前端自习课"关注,学习起来~ 最近给公司微信公众号,写了微信h5业务页面,总结分享一下前端开发过程中的几个兼容性坑,项目直接拿的公司页面,所以下文涉及图片都模糊处理了. ...