我正在准备一个代码,将一个字符串拆分为字符数组,然后根据某种模式对每个数组进行洗牌。如何在C#中填充数组?
我已经使用一些代码根据“密钥大小”将数组拆分为不同的char数组,并且它工作正常,除了最后一个可能缺少某些元素的数组。
如果最后一个数组比其他数组短,将引发异常,因为在某个时候交换函数可能试图将[0]与不存在的[x]交换。
那么我怎样才能把最后一个数组放到相同的大小呢?
这里是我的分裂码这是我在这里的一个问题,在这里我已经编辑使用焦炭而不是INT发现。
public static char[][] Split(char[] source, int keysize)
{
int fullArrayCount = source.Length/keysize;
int totalArrayCount = fullArrayCount;
int remainder = source.Length - (fullArrayCount * keysize);
if (remainder > 0)
{
totalArrayCount++;
}
char[][] output = new char[totalArrayCount][];
for (int i = 0; i < fullArrayCount; i++)
{
output[i] = new char[keysize];
Array.Copy(source, i * keysize, output[i], 0, keysize); // Array.Copy(Original Array,,Target array,"Where to start"0,Howmuch)
}
if (totalArrayCount != fullArrayCount)
{
output[fullArrayCount] = new char[remainder];
// output[fullArrayCount] = new char[keysize];
MessageBox.Show((keysize-remainder).ToString());
Array.Copy(source, fullArrayCount * keysize,output[fullArrayCount], 0, remainder);
}
return output;
}
如果我正确理解了这个问题,你完全忽略了实际修改数组的部分;请包括您想要对'output'的元素进行的操作。 – Codor
我不确定你需要什么,但似乎你的问题是最后一个数组可能比其他数组短。为什么不让其尺寸与其他尺寸相同 - 密钥大小,像现在这样做Array.Copy,并用一些默认值填充数组的其余部分? –
@NemanjaTodorovic:我认为这就是问题所在...... OP不知道*怎么做* – musefan