我创建了一些字符串数组,其中包含长度为4到6的字符串。我正在尝试PadRight
0来获取数组中每个元素的长度为6。
string[] array1 =
{
"aabc", "aabaaa", "Abac", "abba", "acaaaa"
};
for (var i = 0; i <= array1.Length-1; i++)
{
if (array1[i].Length < 6)
{
for (var j = array1[i].Length; j <= 6; j++)
{
array1[i] = array1[i].PadRight(6 - array1[i].Length, '0');
}
}
Console.WriteLine(array1[i]);
}
现在,程序写下我在数组中完全相同的字符串,而不是在最后添加0&#39; s。我做了一些研究,发现一些关于字符串的信息是不可变的,但是仍然有一些改变字符串的例子,但是我找不到任何PadRight或PadLeft,我觉得必须有办法做它,但我无法弄清楚。
有关如何解决该问题的任何想法?
答案 0 :(得分:2)
PadRight
的第一个参数是您想要的总长度。你已经指定了6 - array1[i].Length
- 并且因为你的所有字符串都以至少3个字符开头,你最多填充最多 3个字符,所以它没有做任何事情。
您不需要内部循环,外部循环条件更常规地写为<
。这是我编写代码的一种方式:
using System;
public class Test
{
static void Main()
{
string[] array =
{
"aabc", "aabaaa", "Abac", "abba", "acaaaa"
};
for (var i = 0; i < array.Length; i++)
{
array[i] = array[i].PadRight(6, '0');
Console.WriteLine(array[i]);
}
}
}
事实上,我可能会使用foreach
,甚至是Select
,但这是另一回事。我使用数组离开了这个,使其更接近原始代码。