如何在c#中将字符串截断或填充到固定长度

时间:2017-03-29 14:46:08

标签: c# string

是否有一种单行方式将字符串设置为固定长度(在C#中),方法是截断它或用空格填充它。

例如:

string s1 = "abcdef";
string s2 = "abc";

将两者都设置为长度5后,我们应该:

"abcde"
"abc  "

5 个答案:

答案 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.PadLeftstring.PadRight https://msdn.microsoft.com/en-us/library/66f6d830(v=vs.110).aspx