ashu
ashu

Reputation: 507

Multiple values for a single parameter

How to pass multiple values to a single parameter for a particular method in java. e.g. suppose i have a method with single parameter 'childname', that gets names of all the children in a family. Now how can i pass multiple values to this parameter to get all different names.

public String getChildrenNames(String childname)
{
    children= childname+ familyName;
    return children;
}

Upvotes: 0

Views: 8507

Answers (5)

SpringLearner
SpringLearner

Reputation: 13854

you can use var args like below

public String getChildrenNames(String... childname)
{
    for(String s:childname)
    {
        children= childname+ s;
    }
    return children;
}

example

public class Test {
    public static void main(String[] args) {
        System.out.println(tes("s","d","s"));
    }

    static String tes(String... x)
    {
        String y="";
        for(String s:x)
        {
            y=y+s;
        }
        return y;
    }
}

output: sds

Upvotes: 0

John Dadi Leop
John Dadi Leop

Reputation: 59

You can try this

   public static String child(String... name){
    String[] array=name;
    String tem;
    if(name.length==1)
        return name[0];
    for(int counter=0; counter<array.length;counter+=2){
        array[0]=name[counter]+name[counter+1];
    }
    tem=array[0];

    return tem;
}

now if you call it

    child("Paul","walker");

the output will be Paul Walker hope this helped

Upvotes: 0

Youcef LAIDANI
Youcef LAIDANI

Reputation: 60046

If you can't change the signature of your method, then you can use concatenation, then in your method you can split this parameter for example :

String childname = firstname + "," + lastname;
getChildrenNames(childname);

so you can split this parametter to get multiple names,

String[] spl = childname.split(",");

But there are better ways then this, if you can change the signature of your method, so you can create a method which can take an array or list of names instead :

public String getChildrenNames(String...childnames) {

or

public String getChildrenNames(Lis<String> childnames) {

You can even create an Object for example :

class Person{
    private String firstname;
    private String lastname;
    //getters and setters
}

Then your method should take an array or a list of Person Object :

public String getChildrenNames(List<Person> childname) {

Upvotes: 0

Brank Victoria
Brank Victoria

Reputation: 1455

As people say you need to pass them as an Array, so your code should be like this:

String familyName = "Family";

public String[] getChildrenNames(String[] childnames)
{
    String[] result = new String[childnames.length];
    for(int i=0; i<childnames.length; i++)
    {
        result[i] = childnames[i] + " " +familyName;
    }
    return result;
}

public void main()
{
    String[] childnames = {"Name1", "Name2", "Name3"};
    String[] childnamesAux = getChildrenNames(childnames);
}

With this your childnamesAux variable should have: {"Name1 Family", "Name2 Family", "Name3 Family"}

Upvotes: 0

Joris Schellekens
Joris Schellekens

Reputation: 9057

You would typically implement this using either an Array, or a Collection. eg:

public String[] getNamesOfChildren()

or

public Collection<String> getNamesOfChildren()

Upvotes: 1

Related Questions