最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# String擴(kuò)展 讓你在PadLeft和PadRight時(shí)不再受單雙字節(jié)問題困擾

 更新時(shí)間:2020年04月07日 13:11:53   作者:娃都會打醬油了  
這篇文章主要介紹了c# String擴(kuò)展 讓你在PadLeft和PadRight時(shí)不再受單雙字節(jié)問題困擾,需要的朋友可以參考下

C# 中 PadLeft ,PadRight的用法

簡單來說就是給字符串實(shí)現(xiàn)補(bǔ)位。

如:String.PadLeft(5,'0'); 表示檢查字符串長度是否少于5位,若少于5位,則自動(dòng)在其左側(cè)以'0'補(bǔ)足。

同理PadRight是在右側(cè)實(shí)現(xiàn)補(bǔ)位。

補(bǔ)位

string str = "10";

str.PadLeft(5,'0')

輸出:00010

str.PadRight(5, '0')

輸出:10000

因?yàn)樵贜ET中,string的Length并不區(qū)分當(dāng)前字符串包含的字符為單字節(jié)還是雙字節(jié)字符,這樣導(dǎo)致我們在通過字符串的PadLeft和PadRight方法處理一些需要排版顯示的字符串時(shí),會使得相關(guān)顯示參差不齊,所以這里就有了這么一個(gè)擴(kuò)展,讓雙字節(jié)顯示占用的兩個(gè)單字節(jié)寬度“吐”出來,下面是具體代碼

  using System.Text.RegularExpressions;
  public static class StringExtensions
  {
    /// <summary>
    /// 按單字節(jié)字符串向左填充長度
    /// </summary>
    /// <param name="input"></param>
    /// <param name="length"></param>
    /// <param name="paddingChar"></param>
    /// <returns></returns>
    public static string PadLeftWhileDouble(this string input, int length, char paddingChar = '\0')
    {
      var singleLength = GetSingleLength(input);
      return input.PadLeft(length - singleLength + input.Length, paddingChar); 
    }
    private static int GetSingleLength(string input)
    {
      if (string.IsNullOrEmpty(input))
      {
        throw new ArgumentNullException();
      }
      return Regex.Replace(input, @"[^\x00-\xff]", "aa").Length;//計(jì)算得到該字符串對應(yīng)單字節(jié)字符串的長度
    }
    /// <summary>
    /// 按單字節(jié)字符串向右填充長度
    /// </summary>
    /// <param name="input"></param>
    /// <param name="length"></param>
    /// <param name="paddingChar"></param>
    /// <returns></returns>
    public static string PadRightWhileDouble(this string input, int length, char paddingChar = '\0')
    {
      var singleLength = GetSingleLength(input);
      return input.PadRight(length - singleLength + input.Length, paddingChar);
    }
  }

測試代碼如下

      Console.WriteLine("123測試測試".PadRightWhileDouble(25) + "1");
      Console.WriteLine("123測試測試".PadRightWhileDouble(25, 'A') + "1");
      Console.WriteLine("1231212".PadRightWhileDouble(25) + "1");
      Console.WriteLine("1231212".PadRightWhileDouble(25, 'A') + "1");
      Console.WriteLine("123測試測試".PadLeftWhileDouble(25) + "1");
      Console.WriteLine("123測試測試".PadLeftWhileDouble(25, 'A') + "1");
      Console.WriteLine("1231212".PadLeftWhileDouble(25) + "1");
      Console.WriteLine("1231212".PadLeftWhileDouble(25, 'A') + "1");

測試效果圖

下面是正常的用法

C# 中 PadLeft和PadRight 的用法

在 C# 中可以對字符串使用 PadLeft 和 PadRight 進(jìn)行輕松地補(bǔ)位。
PadLeft(int totalWidth, char paddingChar) //在字符串左邊用 paddingChar 補(bǔ)足 totalWidth 長度
PadRight(int totalWidth, char paddingChar) //在字符串右邊用 paddingChar 補(bǔ)足 totalWidth 長度

示例:

1.假如想輸出AAAAA,可以用string.Empty.PadLeft(5,'A');
2.假如想輸出:

*
**
***
****

可以用PadLeft實(shí)現(xiàn):

for(int i=1;i<=4;i++)
{
 Console.WriteLine(string.Empty.PadLeft(i,'*'));
}

以上就是c# String擴(kuò)展 讓你在PadLeft和PadRight時(shí)不再受單雙字節(jié)問題困擾的詳細(xì)內(nèi)容,更多關(guān)于c# PadLeft和PadRight的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:

相關(guān)文章

  • C# textbox密碼框設(shè)置方式

    C# textbox密碼框設(shè)置方式

    這篇文章主要介紹了C# textbox密碼框設(shè)置方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • C#使用HtmlAgilityPack組件解析html文檔

    C#使用HtmlAgilityPack組件解析html文檔

    這篇文章介紹了C#使用HtmlAgilityPack組件解析html文檔的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Unity3D實(shí)現(xiàn)待機(jī)狀態(tài)圖片循環(huán)淡入淡出

    Unity3D實(shí)現(xiàn)待機(jī)狀態(tài)圖片循環(huán)淡入淡出

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)待機(jī)狀態(tài)圖片循環(huán)淡入淡出,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 使用異步方式調(diào)用同步方法(實(shí)例詳解)

    使用異步方式調(diào)用同步方法(實(shí)例詳解)

    .NET Framework 允許您異步調(diào)用任何方法。為此,應(yīng)定義與您要調(diào)用的方法具有相同簽名的委托;公共語言運(yùn)行時(shí)會自動(dòng)使用適當(dāng)?shù)暮灻麨樵撐卸xBeginInvoke和EndInvoke方法
    2013-10-10
  • C#嵌套類的訪問方法

    C#嵌套類的訪問方法

    這篇文章主要介紹了C#嵌套類的訪問方法,本文給出了嵌套類代碼和訪問方法代碼,不會的同學(xué)照搬對照中的方法即可,需要的朋友可以參考下
    2015-04-04
  • Unity利用UGUI制作提示框效果

    Unity利用UGUI制作提示框效果

    這篇文章主要為大家詳細(xì)介紹了Unity利用UGUI制作提示框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C#使用FileStream循環(huán)讀取大文件數(shù)據(jù)的方法示例

    C#使用FileStream循環(huán)讀取大文件數(shù)據(jù)的方法示例

    這篇文章主要介紹了C#使用FileStream循環(huán)讀取大文件數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了FileStream文件流的形式循環(huán)讀取大文件的相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析

    Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析

    這篇文章主要為大家介紹了Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • C#類中static變量用法分析

    C#類中static變量用法分析

    這篇文章主要介紹了C#類中static變量用法,實(shí)例分析了static變量使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2015-01-01
  • 詳解C#對路徑...的訪問被拒絕解決過程

    詳解C#對路徑...的訪問被拒絕解決過程

    這篇文章主要介紹了詳解C#對路徑...的訪問被拒絕解決過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論

苍山县| 定结县| 肇州县| 庆城县| 东城区| 萝北县| 汝城县| 英德市| 德州市| 景洪市| 茌平县| 清新县| 威远县| 洪雅县| 马龙县| 黔西| 会昌县| 鄄城县| 宁国市| 芜湖市| 留坝县| 哈密市| 西贡区| 呼伦贝尔市| 静安区| 棋牌| 陇川县| 宾阳县| 电白县| 富阳市| 军事| 高陵县| 自治县| 呼玛县| 昌吉市| 兴仁县| 鄂托克前旗| 商都县| 广水市| 天气| 山东省|