更改Char []的值

时间:2016-03-21 17:24:43

标签: java arrays char

我有这个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示例,但我们的想法是设置值而不从数组中提取它们。

5 个答案:

答案 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;