【问题标题】:Copy array to another empty array in java将数组复制到java中的另一个空数组
【发布时间】:2018-09-01 16:37:37
【问题描述】:

我想将这三个数组复制到一个空数组中。我想在 for 循环中检查“标记”数组。

int[] Math={85,65,40,20}; 
int[] English={35,55,68,75}; 
int[] ICT={50,35,69,95};

int i; 
int x=1;

int[] marks; 

if (x==1) {
       marks=Math;
}
else if (x==2) {
      marks=English;
}
else if (x==3) {
      marks=ICT;
}
for (i=0; i<4; i++ )
{
// check Marks array inside a for loop
}

【问题讨论】:

  • 要检查marks 的值,请使用if (marks[i] ...) 之类的东西
  • 你想达到什么目的?这个问题不太清楚。
  • marks 将始终为 Math,因为 x 始终为 1

标签: java arrays loops for-loop


【解决方案1】:

您可以使用以下方法复制 3 个数组。我不清楚问题的另一部分。

int[] Math = {85, 65, 40, 20};
    int[] English = {35, 55, 68, 75};
    int[] ICT = {50, 35, 69, 95};

    int[] marks = new int[Math.length + English.length + ICT.length]; 

    System.arraycopy(Math, 0, marks, 0, Math.length);
    System.arraycopy(English, 0, marks, Math.length, English.length);
    System.arraycopy(ICT, 0, marks,  Math.length+English.length, ICT.length);

    for (int x = 0; x < marks.length; x++) {
        System.out.println(marks[x]);
    }

【讨论】:

    【解决方案2】:

    你需要初始化标记数组。

        int[] Math = {85,65,40,20}; 
        int[] English = {35,55,68,75}; 
        int[] ICT = {50,35,69,95};
    
        int i; 
        int x=1;
    
        int[] marks = new int[4];
    
        if (x==1) {
               marks=Math;
        }
        else if (x==2) {
              marks=English;
        }
        else if (x==3) {
              marks=ICT;
        }
    
        for (i=0; i<4; i++ )
        {
            System.out.print(marks[i] + " ");
        }
    

    【讨论】:

    • 这个问题无法回答,因为我们不知道 OP 想要做什么。你做了一个可能正确也可能不正确的假设。而且,您的“答案”不正确,无需初始化 marks,因为它将被设置为引用其他数组之一。您建议的初始化是不需要的。
    猜你喜欢
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    相关资源
    最近更新 更多