我有这个char数组
char[] E = {'f','e','d','c','b','a'};
我想知道如何将数组的3个第一个值设置为'G'
。例如在Matlab中,我曾经这样做过:
F=[1 2 3 4 5 6];
F(1:3) = 9;// F = 9 9 9 4 5 6
这是一个Integer示例,但我们的想法是设置值而不从数组中提取它们。
答案 0 :(得分:5)
您可以使用:
Arrays.fill(char[], startIndex, endIndex, charValue);
注意:
startIndex
包含。 endIndex
独占。所以你应该使用,
Arrays.fill(E, 0, 3, 'G'); // ['G','G','G','c','b','a']
此fill()
是一个就地操作,即它在同一个数组上运行。
答案 1 :(得分:4)
我可以通过四种方式来改变数组的前3个值:
// Manually, one at a time
E[0] = 'G';
E[1] = 'G';
E[2] = 'G';
// Manually, cascaded
E[0] = E[1] = E[2] = 'G';
// Using a loop
for (int i = 0; i < 3; i++)
E[i] = 'G';
// Using Arrays.fill
Arrays.fill(E, 0, 3, 'G');
注意:最后一个在内部使用循环。这简直是一种不错的便利方法。
第二个是效率最高的,但它恰好是前三个硬编码。如果那就是你需要的,那就是最好的方式。
如果要更新的范围更具动态性,最后一个是最好的。
答案 2 :(得分:0)
您可以迭代数组并设置值:
int slice = 3;
for(int i = 0; i < slice; i++){
E[i] = 'A';
}
注意:您可以使用if
条件检查slice
值是否小于数组的长度,以避免ArrayIndexOutOfBoundException
。
答案 3 :(得分:0)
for (int i=0;i<3;i++)
E[i]='G';
答案 4 :(得分:0)
for (int i = 0; i < 3; i++) {
E[i] = 'G';
}
将char[] E
的前3个元素设置为&#39; G&#39;