这是我正在寻找的一个例子:
public static void main(String[] args) {
if(args.length>2){ print(args.getArrayFromIndex(2)); }
else { print(args); }
}
public static void print(String... list){
for(String str : list){ System.out.println(str); }
}
我想知道是否有一些内置方法,或者唯一的选择是从索引2创建新数组并发送它
答案 0 :(得分:1)
在Java 6或更高版本中,您可以使用Arrays.copyOfRange
方法获取原始数组,初始索引(包括)和最后一个索引(不包括),并返回指定范围的副本:
if(args.length>2){
print(Arrays.copyOfRange(args, 2, args.length));
}
答案 1 :(得分:0)
您可以使用Arrays.copyOfRange将数组从索引复制到另一个索引。
答案 2 :(得分:0)
或者,如果您确实不想创建新数组,则可以修改print()
public static void main(String[] args) {
if(args.length>2){ print(0,1,args); }
else { print(0, args.length-1,args); }
}
//start and end are inclusive
public static void print(int start, int end, String... list){
for(int i=start; i< end+1 ; i++){
System.out.println(list[i]); }
}
答案 3 :(得分:0)
如果您担心创建新阵列实例所花费的资源,请尝试以下方法:
public static void print(int startFrom, String... list){
...
}
答案 4 :(得分:0)
您可以Java.util
像这样使用
if(args.length>2){
{
String[] partOfArray = Arrays.copyOfRange(args, 2, args.length - 1);
print(partOfArray);
}
答案 5 :(得分:0)
如何重载print
方法以使用范围值?
static public void main(String[] args) throws Exception {
String[] arr = { "0", "1", "2", "3" };
if (arr.length > 2) {
print(2, arr);
} else {
print(arr);
}
}
public static void print(int start, String... list) {
for (int i = start; i < list.length; i++) {
System.out.println(list[i]);
}
}
public static void print(String... list) {
print(0, list);
}