题目:定义一个方法CopyOfRange(int[] arr,int from, int to) 功能:将数组arr从索引from(包括from)开始 到索引to结束(不包括to)的元素复制到新的数组, 将新数组返回
以下是我的思路(Wrong):
(大概是方法里面直接赋值,j没有给出范围,导致结果乱码)
public class ArrWay1 {
public static void main(String[] args) {
int[] arr={4,1,7,0,2,6,13,5};
Scanner sc=new Scanner(System.in);
int from,to;
from=sc.nextInt();
to=sc.nextInt();
// int[] arr2=new int[to-from+1];
int[] arr2=CopyOfRange(arr,from,to);
CopyOfRange(arr,from,to);
for(int i:arr){
System.out.println(i+" ");
}
}
public static int[] CopyOfRange(int[] arr,int from,int to){
for(int i=from,j=0;i<to;i++,j++){
arr[j]=arr[i];
}
return arr;
}
}
正确思路:
import java.util.Scanner;
public class ArrWay1 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5,6,7,8};
Scanner sc=new Scanner(System.in);
System.out.println("请输入索引from和to:");
int from=sc.nextInt();
int to=sc.nextInt();
int[] copyArray = CopyOfRange(arr, from, to);
for (int i = 0; i < copyArray.length; i++) {
System.out.print(copyArray[i]+" ");
}
}
public static int[] CopyOfRange(int[] arr,int from,int to){
int[] NewArray=new int[to-from];
int index=0;
for (int i =from; i <to ; i++) {
NewArray[index]=arr[i];
index++;
}
return NewArray;
}
}
index++就很关键.
在java中可以返回一个在方法内定义的数组,而函数的返回值类型必须与其一致.