我的任务是创建一个调用两个方法的main方法。第一种方法返回字符串数组,而第二种方法采用字符串数组并在单独的行上打印出元素。然后main方法将调用第一个方法的结果传递给第二个方法,然后停止。我是在正确理解问题吗?当我编译并执行时,我得到了
sunshine
road
73
11
public class Hihihi
{
public static void main(String args[])
{
method1();
method2();//Will print the strings in the array that
//was returned from the method1()
System.exit(0);
}
public static String[] method1()
{
String[] xs = new String[] {"sunshine","road","73","11"};
String[] test = new String[4];
test[0]=xs[0];
test[1]=xs[1];
test[2]=xs[2];
test[3]=xs[3];
return test;
}
public static void method2()
{
String[] test = method1();
for(String str : test)
System.out.println(str);
}
}
答案 0 :(得分:2)
您的代码有效,但是在main
中,method1
的返回值将被忽略。无需在method1
中调用method2
。
您可以让method2
接受参数String[] strings
:
public static void method2(String[] strings) {
for (String str : strings)
System.out.println(str);
}
并将method1
的结果传递给method2
:
String[] result = method1();
method2(result);//Will print the strings in the array that
答案 1 :(得分:2)
首先,请更正您的method2
它必须能够接受String
元素数组作为参数:
public static void method2(String[] test)
{
// this line is not needed -> String[] test = method1();
for(String str : test)
System.out.println(str);
}
通过这种方式,您实际上已按照要求将数据传递给方法。一个好处是:它也可以在其他String
数组中重复使用。
您的method1
有很多冗余代码。只是过滤掉
public static String[] method1()
{
return new String[] {"sunshine","road","73","11"};
}
现在,您的main
方法仅用于链接它们。更改
public static void main(String args[])
{
method1();
method2(); // this will now cause a compilation error, because it expects a parameter
System.exit(0);
}
收件人:
public static void main(String args[])
{
method2(method1());
System.exit(0);
}
代码method1
的原始构建方式被两次调用,第一次是在main
方法中,这是完全多余的,因为未使用结果,第二次是在{{ 1}},因为应该将数据作为参数传递,所以不应该调用它。
答案 2 :(得分:1)
执行上述操作的正确方法如下所示。您必须将方法一的返回值作为参数插入到方法二中。
public class Hihihi
{
public static void main(String args[])
{
String[] test=method1();
method2(test);
}
public static String[] method1()
{
String[] xs = new String[] {"sunshine","road","73","11"};
String[] test = new String[4];
test[0]=xs[0];
test[1]=xs[1];
test[2]=xs[2];
test[3]=xs[3];
return test;
}
public static void method2(String[] newtest)
{
for(String str : newtest)
System.out.println(str);
}
}
答案 3 :(得分:1)
您快到了:method1()
的返回应该在第一次调用中使用(实际上是在忽略它),并且您必须使用该返回值(我在代码中做了一些注释)以及)
public static void main(String args[]) {
String[] result = method1(); //TAKE THE VALUE HERE
method2(result);//pass the result here as parameter
System.exit(0); //there's no need of this, the program will exit when method2 is finished
}
因此,编辑method2
以获取method1
的结果作为参数
public static void method2(String[] arrayToPrint){
for(String str : arrayToPrint)
System.out.println(str);
}
答案 4 :(得分:1)
如果您希望数据通过主管道“流动”,您应该这样做:
public static void main(String args[]){
String[] arr = method1();
method2(arr);
System.exit(0);
}
public static String[] method1(){
String[] xs = new String[] {"sunshine","road","73","11"};
String[] test = new String[4];
test[0]=xs[0];
test[1]=xs[1];
test[2]=xs[2];
test[3]=xs[3];
return test;
}
public static void method2(String[] arr){
for(String str : arr){
System.out.println(str);
}
}