繁体   English   中英

修剪和填充在一个字符串方法中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM