[英]trim and pad in one string method
我有一个接受一个字符串的方法,它必须得到一个正好有 5 个字符的字符串。
用户可能会插入超过 5 个字符的字符串 - 在这种情况下,我想向左修剪。
用户可能会插入少于 5 个字符的字符串 - 在这种情况下,我想向左填充。
我知道我可以在 if/else 条件下做到这一点,但我想知道字符串 class 可能有助于在一个命令中处理这种情况。
你怎么看?
尝试填充到 5 个字符,然后修剪到 5 个字符。 填充可能会使它太长并不重要,因为修剪会解决这个问题::-)
这是一个简单的操作顺序问题,先填充然后修剪到大小......就像
string hi = "hello world"; //or try = "hi";
hi = hi.PadLeft(5, '0');
hi = hi.Substring(hi.Length - 5);
Console.WriteLine(hi);
可以肯定的是,这个分支,但坦率地说,我认为它足够整洁:
var maxLength = 5;
var paddingChar = 'x';
input = input.Length > maxLength ?
input.Remove(0, input.Length - maxLength) :
input.PadLeft(maxLength, paddingChar);
您可以创建 PadRight(或 PadLeft)的扩展,例如:
public static string PadRight2(this string value, int exactWidth)
{
return value.PadRight(exactWidth).Substring(0, exactWidth);
}
假设你想用字符'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)
(在右侧)?
尝试这个:
string str = "abcdefghjxd";
string split = str.Substring(0, 5);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.