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

如何使用java从函数返回数组,java,Java,我编写了一个程序,从用户那里获取地址详细信息,并在不使用2 for循环的情况下打印地址详细信息,因此我使用了函数add_show。 但我收到错误,因为字符串[]无法转换为字符串。 返回添加 请更新,如何从函数中获取数组的返回值 public String[] add_show() { Scanner h=new Scanner(System.in); System.out.println("Enter the number of address to deliver");

我编写了一个程序,从用户那里获取地址详细信息,并在不使用2 for循环的情况下打印地址详细信息,因此我使用了函数add_show。 但我收到错误,因为字符串[]无法转换为字符串。 返回添加

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

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;
}

将该方法的返回类型更改为字符串数组,这将对您有效。

返回类型必须为字符串[],[]表示数组,如果将字符串声明为结果类型,则必须返回字符串

公共字符串add_show{…}表示函数将返回字符串类型的对象

如果要返回字符串数组,则需要更改为公共字符串[]add_show{…}


使用Java 8,您可以通过add_show return执行此操作:

String.join(delimiter, elements);
因此,这将是:

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

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

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,它将返回一个格式化字符串,如[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标准表示法,一个方法的名称中不应该有u,它应该使用camelCase使其看起来像addShow。

更改该方法的返回类型…public String[]add\u show并检查Java中的标准表示法。add\u show不是标准的。返回类型应该是Array-String[]无关:1.请将错误消息/堆栈跟踪添加为文本。2.请正确缩进您的代码段。3.您确实应该遵守Java代码约定命名变量、方法……;所有这些都使我们更容易帮助您。我也这样做了。但整个函数是基于计数次数运行的。例如:如果计数为2,则n添加显示正在运行2times@Keerthana如果该方法运行两次,那么您在其他地方有代码可以在此处输入图像描述。我做了更改,但工作不正常,我在问题中添加了错误屏幕截图。请在此处输入图像描述。请检查它不是int…@Keerthana我个人会将输入作为string,然后首先验证它,而不是使用nextInt。或者至少尝试/捕获它。永远不要信任用户输入。@Keerthana尝试使用return array.tostringad并将函数类型改回String,而不是String[]非常感谢,它正在工作。但是,您能告诉我它将如何工作吗?即使这不是直接询问如何使用java从函数返回数组。有时,不可能更改要求。@Keerthana注意,只有一个答案可以接受。我注意到,如果您愿意,您已经将已接受的答案更改为我的答案感谢不止一个答案,您可以投票给他们,但只能接受符合您需要的答案。如果这是我的,谢谢;如果不是,这对我来说很好。我感谢您更改了代码对齐方式。我是java新手,希望您能找到它。因此,我在您的解释中了解了有关编码的更多信息
System.out.println("address is " + addressesFormat);