[英]“Pad Left” with 0's on a char array
G'day,
我有一个char数组,其大小根据某些数据的长度而变化。 数组永远不会大于24。 但是,它可能小于24。因此,我需要用0来“向左填充”,例如在数组的左侧添加更多元素以使其变为24。我下面有一些代码可以做到这一点,想知道是否有更快或更有效的方法。 谢谢!
注意:我不认为这是重复的,因为我正在使用char []而不是字符串。
char[] dataLen = Convert.ToString(data.Length, 2).ToCharArray();
int j = 0;
char[] tmp = new char[24];
for (int i = 0; i < 24; i++)
{
if (i < (24 - dataLen.Length))
tmp[i] = '0';
else
tmp[i] = dataLen[j++];
}
dataLen = tmp;
为什么不简单地使用String.PadLeft
?
char[] data = "abcdefgh".ToCharArray(); // sample data
data = new string(data).PadLeft(24, '0').ToCharArray();
那应该是有效的并且也很可读。
我只是将string
用于所有操作,并使用PadLeft
进行填充。
string input = new string(data);
string result = input.PadLeft(24, '0');
如果确实需要,则将其转换为char[]
:
char[] chars = result.ToCharArray();
(此外,您的Convert.ToString(data.Length, 2)
不返回其字符串表示形式, new string(data)
则返回)
怎么样 :
string z24 = "000000000000000000000";
tmp = z24.Take(24 - dataLen.Length).Union(dataLen).ToArray();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.