修剪和垫一个字符串方法

时间:2011-05-29 22:13:47

标签: c# .net

我有一个接受一个字符串的方法,它必须得到一个恰好有5个字符的字符串 用户可能会插入超过5个字符的字符串 - 在这种情况下我想要修剪左边 用户可能会插入少于5个字符的字符串 - 在这种情况下,我想要向左填充。

我知道我可以用if / else条件来做,但我想也许字符串类有一些帮助在一个命令中处理这种情况。

您怎么看?

6 个答案:

答案 0 :(得分:6)

尝试填充5个字符,然后修剪为5个字符。填充可能会使它太长并不重要,因为修剪会解决这个问题! : - )

答案 1 :(得分:4)

这是一个操作问题的简单顺序,首先填充然后修剪到大小......比如

string hi = "hello world"; //or try = "hi";
hi = hi.PadLeft(5, '0'); 
hi = hi.Substring(hi.Length - 5);
Console.WriteLine(hi);

答案 2 :(得分:2)

可以肯定的是,这个分支机构,但坦率地说,我认为它足够整洁:

var maxLength = 5;
var paddingChar = 'x';

input = input.Length > maxLength ?
    input.Remove(0, input.Length - maxLength) :
    input.PadLeft(maxLength, paddingChar);

答案 3 :(得分:0)

您可以创建PadRight(或PadLeft)的扩展名,例如:

public static string PadRight2(this string value, int exactWidth)
{
    return value.PadRight(exactWidth).Substring(0, exactWidth);
}

答案 4 :(得分:-1)

假设您要填充字符“A”,那么:

("AAAAA" + st).Substring(st.Length)
// Note: padded string has length (st.Length + 5)  
// ... so substring offset is ((st.Length+5)-5) = st.Length

(在左侧),或:

(st + "AAAAA").Substring(0,5)

(在右边)?

答案 5 :(得分:-7)

试试这个:

string str = "abcdefghjxd";
 string split = str.Substring(0, 5);