如何在 C# 中将字符串截断或填充到固定长度
How to truncate or pad a string to a fixed length in c#
是否有一种将 string
设置为 固定长度 (在 C# 中)的单行方法,方法是 truncating 它或 padding 它有空格 (' '
).
例如:
string s1 = "abcdef";
string s2 = "abc";
将两者都设置为长度 5
后,我们应该有:
"abcde"
"abc "
你试过了吗
s1.PadLeft(5);
如果你想要的不是空格,你也可以指定填充字符
s1.PadLeft(6, '.');
会给你:"abcdef."
两者兼顾:
var s1 = "1234567890";
var s2 = s1.SubString(5).PadLeft(5);
private string fixedLength(string input, int length){
if(input.Length > length)
return input.Substring(0,length);
else
return input.PadRight(length, ' ');
}
你只需要PadRight
然后是Substring
(前提是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);
(此答案之前包含不正确的代码,如评论中所引用。)
自定义单行代码为 str.Length > 5 ? str.Substring(0,5) : str.PadRight(5);
。
我会使用@waka 答案,但作为扩展方法和 null 验证,如下所示:
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
设置为 固定长度 (在 C# 中)的单行方法,方法是 truncating 它或 padding 它有空格 (' '
).
例如:
string s1 = "abcdef";
string s2 = "abc";
将两者都设置为长度 5
后,我们应该有:
"abcde"
"abc "
你试过了吗 s1.PadLeft(5);
如果你想要的不是空格,你也可以指定填充字符
s1.PadLeft(6, '.');
会给你:"abcdef."
两者兼顾:
var s1 = "1234567890";
var s2 = s1.SubString(5).PadLeft(5);
private string fixedLength(string input, int length){
if(input.Length > length)
return input.Substring(0,length);
else
return input.PadRight(length, ' ');
}
你只需要PadRight
然后是Substring
(前提是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);
(此答案之前包含不正确的代码,如评论中所引用。)
自定义单行代码为 str.Length > 5 ? str.Substring(0,5) : str.PadRight(5);
。
我会使用@waka 答案,但作为扩展方法和 null 验证,如下所示:
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);
}