![](/img/trans.png)
[英]How do you pad a string with a given character or make it empty if length to pad is 0 in C#?
[英]How to truncate or pad a string to a fixed length in c#
是否有一種將string
設置為固定長度的單行方式(在 C# 中),通過截斷它或用空格( ' '
)填充它。
例如:
string s1 = "abcdef";
string s2 = "abc";
將兩者都設置為長度5
,我們應該有:
"abcde"
"abc "
您只需要PadRight
后跟Substring
( PadRight
是source
不為null
):
string source = ...
int length = 5;
string result = source.PadRight(length).Substring(0, length);
如果source
可以為null
:
string result = source == null
? new string(' ', length)
: source.PadRight(length).Substring(0, length);
private string fixedLength(string input, int length){
if(input.Length > length)
return input.Substring(0,length);
else
return input.PadRight(length, ' ');
}
(此答案以前包含錯誤的代碼,如評論中所述。)
定制的str.Length > 5 ? str.Substring(0,5) : str.PadRight(5);
將是str.Length > 5 ? str.Substring(0,5) : str.PadRight(5);
str.Length > 5 ? str.Substring(0,5) : str.PadRight(5);
.
你試過 s1.PadLeft(5);
如果您想要除空格以外的其他內容,您還可以指定填充字符
s1.PadLeft(6, '.');
會給你:“abcdef”。
兩者都做:
var s1 = "1234567890";
var s2 = s1.SubString(5).PadLeft(5);
我會使用@waka 答案,但作為擴展方法和空驗證,如下所示:
public static string FixedLength(this string value, int totalWidth, char paddingChar)
{
if (value is null)
return new string(paddingChar, totalWidth);
if (value.Length > totalWidth)
return value.Substring(0, totalWidth);
else
return value.PadRight(totalWidth, paddingChar);
}
你可以使用string.PadLeft
或string.PadRight
https://msdn.microsoft.com/en-us/library/66f6d830(v=vs.110).aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.