欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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类型自增的值,来自增这个字符串的,这个自增的字符串还是表的主键。这个表不是我设计的,个人理解,这种场景还是尽量少的有吧,因为这样的设计并不好。应该从数据库表的设计和使用场景来设计。

  不过这两个方法还是蛮好用的。