需求:复制数组,从索引from,复制到索引to,包含from,不包含to。from和to需手动输入。
package com.itheima.test4;
import java.util.Scanner;
public class MethonDemo4 {
public static void main(String[] args) {
//需求:复制数组,从索引from,复制到索引to,包含from,不包含to
// 1创建被复制数组
int [] arrOld={1,3,5,8,5};
// 2.调用copy方法,并接收新数组
System.out.println("输入开始,注意一共仅三次输入机会");
// 手动输入新数组
Scanner sc=new Scanner(System.in);
// 接收 from 和 to
int from=0;
int to=0;
int count=0;
for(int i=0;i<3;i++) {
if(i>0){
System.out.print("请重新输入");
}
if(i==2){
System.out.println(",您只剩最后一次机会了");
}
System.out.println("输入from");
from = sc.nextInt();
System.out.println("输入to");
to = sc.nextInt();
// 检查输入是否合法,开始索引要小于终止索引,同时,终止索引要小于被复制数组总长度
if(from<to&&from>=0&&to<=arrOld.length){
break;
}
System.out.println("输入不合法");
count++;
}
if(count<3){
int [] arrNew=copy(arrOld,from,to);
// 3.输出
System.out.print("新数组为arrNew=[");
for (int i = 0; i < arrNew.length-1; i++) {
System.out.print(arrNew[i]+",");
}
System.out.print(arrNew[arrNew.length-1]+"]");
}
else{
System.out.println("终止");
}
}
//定义方法
// 参数:第一个参数为被复制数组,第二个为开始索引,第二个为截至索引
public static int [] copy(int [] arr,int from,int to){
// 1. 创建新的数组
int [] arrNew=new int[to-from];
// 保存起始索引号
// 老数组复制新数组(不包含索引to的数组)
for (int i = 0; i < arrNew.length; i++) {
arrNew[i]=arr[from];
from++;
}
// 2. 返回新数组
return arrNew;
}
}