用户登录
用户注册

分享至

C#中PadLeft,PadRight的用法

  • 作者: 游走的流浪汉
  • 来源: 51数据库
  • 2021-11-03

今天在遇到一个需求的时候,需要一个字符串实现自增。是根据数据库中一个自增的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类型自增的值,来自增这个字符串的,这个自增的字符串还是表的主键。这个表不是我设计的,个人理解,这种场景还是尽量少的有吧,因为这样的设计并不好。应该从数据库表的设计和使用场景来设计。

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

 

软件
前端设计
程序设计
Java相关