您好,登錄后才能下訂單哦!
這篇文章主要講解了“C# 中 PadLeft和PadRight 的用法和作用講解”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C# 中 PadLeft和PadRight 的用法和作用講解”吧!
C# 中 PadLeft ,PadRight的用法
簡單來說就是給字符串實現(xiàn)補位。
如:String.PadLeft(5,'0'); 表示檢查字符串長度是否少于5位,若少于5位,則自動在其左側(cè)以'0'補足。
同理PadRight是在右側(cè)實現(xiàn)補位。
補位
string str = "10";
str.PadLeft(5,'0')
輸出:00010
str.PadRight(5, '0')
輸出:10000
因為在NET中,string的Length并不區(qū)分當前字符串包含的字符為單字節(jié)還是雙字節(jié)字符,這樣導(dǎo)致我們在通過字符串的PadLeft和PadRight方法處理一些需要排版顯示的字符串時,會使得相關(guān)顯示參差不齊,所以這里就有了這么一個擴展,讓雙字節(jié)顯示占用的兩個單字節(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;//計算得到該字符串對應(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 進行輕松地補位。
PadLeft(int totalWidth, char paddingChar) //在字符串左邊用 paddingChar 補足 totalWidth 長度
PadRight(int totalWidth, char paddingChar) //在字符串右邊用 paddingChar 補足 totalWidth 長度
示例:
1.假如想輸出AAAAA,可以用string.Empty.PadLeft(5,'A');
2.假如想輸出:
*
**
***
****
可以用PadLeft實現(xiàn):
for(int i=1;i<=4;i++) { Console.WriteLine(string.Empty.PadLeft(i,'*')); }
感謝各位的閱讀,以上就是“C# 中 PadLeft和PadRight 的用法和作用講解”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C# 中 PadLeft和PadRight 的用法和作用講解這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。