是否有一种单行方式将字符串设置为固定长度(在C#中),方法是截断它或用空格填充它。
例如:
string s1 = "abcdef";
string s2 = "abc";
将两者都设置为长度5后,我们应该:
"abcde"
"abc "
答案 0 :(得分:10)
您需要的只是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);
答案 1 :(得分:4)
private string fixedLength(string input, int length){
if(input.Length > length)
return input.Substring(0,length);
else
return input.PadRight(length, ' ');
}
答案 2 :(得分:0)
你试过吗? s1.PadLeft(5);
如果你想要的不是空格
,你也可以指定填充的字符s1.PadLeft(6, '.');
会给你:" abcdef。"
同时做两件事:
var s1 = "1234567890";
var s2 = s1.SubString(5).PadLeft(5);
答案 3 :(得分:0)
有两个选项,一个是内置的,一个是自定义的。
您可以使用String.Format函数,如下所示:
String.Format("{0:-5", str);
其中str
是您要格式化的字符串。 {0}
表示该字符串,:-5
指定左对齐5个字符的字符串。要对齐它,您只需使用:5
。
自定义单行将为str.Length > 5 ? str.Substring(0,5) : str.PadRight(5);
。
答案 4 :(得分:-1)
您可以使用string.PadLeft
或string.PadRight
https://msdn.microsoft.com/en-us/library/66f6d830(v=vs.110).aspx