我有一个接受一个字符串的方法,它必须得到一个恰好有5个字符的字符串 用户可能会插入超过5个字符的字符串 - 在这种情况下我想要修剪左边 用户可能会插入少于5个字符的字符串 - 在这种情况下,我想要向左填充。
我知道我可以用if / else条件来做,但我想也许字符串类有一些帮助在一个命令中处理这种情况。
您怎么看?
答案 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);