2017-06-16 13 views
0

Wie mehrere Werte an einen einzelnen Parameter für eine bestimmte Methode in Java übergeben werden. z.B. Angenommen, ich habe eine Methode mit einem einzelnen Parameter 'childname', die Namen aller Kinder in einer Familie bekommt. Nun, wie kann ich mehrere Werte an diesen Parameter übergeben, um alle verschiedenen Namen zu erhalten.Mehrere Werte für einen einzelnen Parameter

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

kann man die Methode nicht ändern, um zwei Params zu akzeptieren ?? – Jeff

Antwort

1

Sie würden dies normalerweise entweder mit einem Array oder einer Collection implementieren. zB:

public String[] getNamesOfChildren() 

oder

public Collection<String> getNamesOfChildren() 
0

Sie var args wie unter

public String getChildrenNames(String... childname) 
{ 

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

Beispiel

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

Ausgang verwenden können: sds

+0

Dies funktioniert offensichtlich nicht und der Einzug könnte auch besser sein. – Tom

+0

@Tom Könnten Sie mir bitte sagen, dass es nicht funktioniert – SpringLearner

+0

Warum sollten Sie 's' an das Array' childname' anhängen? – Tom

0

Wenn Sie nicht die Signatur Ihrer Methode ändern können, dann können Sie Verkettung, dann in Ihrer Methode verwenden Sie diese Parameter beispielsweise aufspalten:

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

so können Sie diese parametter geteilt zu bekommen mehrere Namen,

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

Aber es gibt bessere Möglichkeiten, dann dies, kann, wenn Sie die Signatur Ihrer Methode ändern, so können Sie eine Methode erstellen, die ein Array oder eine Liste von Namen nehmen können Inste Anzeige:

public String getChildrenNames(String...childnames) { 

oder

public String getChildrenNames(Lis<String> childnames) { 

Sie auch ein Objekt zum Beispiel erstellen:

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

dann Ihre Methode ein Array oder eine Liste der Person Objekt nehmen sollte:

public String getChildrenNames(List<Person> childname) { 
0

Wie die Leute sagen, Sie brauchen sie als Array übergeben, so dass Ihr Code wie folgt sein sollte:

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

Damit Ihre childnamesAux Variable sollte: { "Name1 Familie", "Name2 Familie", "Name3 Familie"}

0

Sie können versuchen, diese

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

jetzt, wenn Sie es nennen

child("Paul","walker"); 

der AusgangseinPaul Walker hoffe das half

Verwandte Themen