zoukankan      html  css  js  c++  java
  • 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 = 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"或者更多的呢?这样写就不方便了。其实这个也可以用设计模式中的责任链模式来写的,不过当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类型自增的值,来自增这个字符串的,这个自增的字符串还是表的主键。这个表不是我设计的,个人理解,这种场景还是尽量少的有吧,因为这样的设计并不好。应该从数据库表的设计和使用场景来设计。

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

  • 相关阅读:
    Python中数据在内存中存储汇总
    python每日一题:爬取一些代理网站获取动态ip
    python每日一题:关于反爬虫措施
    python每日一题:爬虫一些需要登录账号密码的网站
    python每日一题:爬虫某网站图书信息
    【MyBatis】MyBatis CRUD
    【MyBatis】自定义 MyBatis
    【JavaWeb】i18n 国际化
    【JavaWeb】AJAX 请求
    【JavaWeb】JSON 文件
  • 原文地址:https://www.cnblogs.com/taotaozhuanyong/p/11857809.html
Copyright © 2011-2022 走看看