C#中PadLeft,PadRight的用法
程序员文章站
2022-05-03 12:41:44
今天在遇到一个需求的时候,需要一个字符串实现自增。是根据数据库中一个自增的int类型的值,实现自增的。但是要加上前缀。比如,数据库中有一个自增的值,为,2。那么这个自增的值后面的值就位3、4、5、6、7.....100、101、102......所以我要获得 的这个字符串就要是"S0001"、"S0 ......
今天在遇到一个需求的时候,需要一个字符串实现自增。是根据数据库中一个自增的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 = 101; if (newid < 10) { shopcode += $"000{newid}"; } else if (newid < 100) { shopcode += $"00{newid}"; } else if (newid < 1000) { shopcode += $"0{newid}"; } else { shopcode += newid; } return shopcode; }
0的个数少,还可以这样写,如果有十个"0"或者更多的呢?这样写就不方便了。
幸好,c#中字符串有一个方法
public string padleft(int totalwidth, char paddingchar);
返回值:
返回一个新字符串,该字符串通过填充右对齐此实例中的字符。它们位于左侧,具有指定的unicode字符,具有指定的总长度。
参数:
totalwidth:结果字符串中的字符数,等于原始字符串的数目,字符加上任何其他填充字符。
paddingchar:unicode填充字符。
所以,这个方法就可以改写成如下:
public string getselfincrstr() { var newid = 101; return "s" + newid.tostring().padleft(3, '0'); }
这样写起来就方便多了。
还有一个方法:
public string padright(int totalwidth);
static string getstr() { var str = "100"; return str.padright(5, '0'); }
这个方法得到的结果是10000。
其实,这个任务,是根据数据库中的int类型自增的值,来自增这个字符串的,这个自增的字符串还是表的主键。这个表不是我设计的,个人理解,这种场景还是尽量少的有吧,因为这样的设计并不好。应该从数据库表的设计和使用场景来设计。
不过这两个方法还是蛮好用的。
推荐阅读