如何使用java从函数返回数组

时间:2018-02-21 11:58:32

标签: java

enter image description here

我写了一个程序来获取用户的地址详细信息并打印相同而不使用2 for循环,所以我使用了函数 add_show()。 但我得到错误,因为string []无法转换为字符串。 返回添加;

public String add_show()
{ 

    Scanner h=new Scanner(System.in);
    System.out.println("Enter the number of address to deliver");
    int n=h.nextInt();
    String[] add=new String[n];
    System.out.println("Enter the"+n+" of address to deliver");
    for(int i=0;i<n;i++)
    {
        add[i]=h.next();
    }
    return add;
}

public void show()
{
     System.out.println("Book name is "+B_name());
     System.out.println("count "+department());
     System.out.println("address is "+add_show());
}

请更新,如何从函数中获取数组的返回值。

5 个答案:

答案 0 :(得分:5)

public String[] add_show()
{
    Scanner h=new Scanner(System.in);
    System.out.println("Enter the number of address to deliver");
    int n=h.nextInt(); 
    String[] add=new String[n];
    System.out.println("Enter the"+n+" of address to deliver");
    for(int i=0;i<n;i++)
    {
      add[i]=h.next();
    }
    return add;
}

将方法的返回类型更改为字符串数组,它适用于您。

答案 1 :(得分:0)

返回类型必须是String [],“[]”表示数组,如果将String声明为结果类型,则必须返回String。

答案 2 :(得分:0)

  • public String add_show(){...}表示该函数将返回String

  • 类型的对象
  • 您想要返回array String,您需要更改为public String[] add_show(){...}

答案 3 :(得分:0)

使用Java 8,您可以使用add_show返回来执行此操作:

public String add_show(){
    ...
    return String.join(",", add);
}

所以它会是:

MyEnum.FIRST

答案 4 :(得分:0)

首先,设置正确的返回类型以返回数组:

public String[] add_show()

然后,为了打印结果,我建议你不要直接打印方法的结果,存储它们。

System.out.println("Book name is "+B_name());
System.out.println("count "+department());
System.out.println("address is "+add_show());

看起来像

String bookName = B_name();
String count = department();
String[] addresses = add_show();

System.out.println("Book name is " + bookName);
System.out.println("count " + count);
System.out.println("address is " + addresses);

现在,如果您尝试直接打印数组,它看起来像[String@...,您需要自己获取内容,或使用可以执行此操作的方法...

使用Arrays.toString,它会返回格式化的String,例如“[value1,value2,value3,... valueN]”,不适合用户

String addressesFormat = Arrays.toString(addresses); 

您可以在Java 8之后使用String.join来加入具有特定分隔符的每个内容:

String addressesFormat = String.join("\n", addresses); 

然后打印结果:

System.out.println("address is " + addressesFormat);

仅供参考:你应该检查Java标准符号,一个方法不应该在他的名字中有_,它应该使用camelCase看起来像addShow