如何將多個值傳遞給java中特定方法的單個參數。 例如假設我有一個帶有單個參數'childname'的方法,它可以獲取家庭中所有孩子的名字。 現在我怎麼能傳遞多個值到這個參數來獲得所有不同的名稱。單個參數的多個值
public String getChildrenNames(String childname)
{
children= childname+ familyName;
return children;
}
如何將多個值傳遞給java中特定方法的單個參數。 例如假設我有一個帶有單個參數'childname'的方法,它可以獲取家庭中所有孩子的名字。 現在我怎麼能傳遞多個值到這個參數來獲得所有不同的名稱。單個參數的多個值
public String getChildrenNames(String childname)
{
children= childname+ familyName;
return children;
}
您通常會使用Array或Collection進行實現。 如:
public String[] getNamesOfChildren()
或
public Collection<String> getNamesOfChildren()
你可以使用變參像下面
public String getChildrenNames(String... childname)
{
for(String s:childname)
{
children= childname+ s;
}
return children;
}
例如
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;
}
}
輸出: SDS
如果你不能改變你的方法的簽名,那麼你可以使用串聯,然後在你的方法,你可以分割這個參數,例如:
String childname = firstname + "," + lastname;
getChildrenNames(childname);
,因此您可以拆分此parametter得到多個名稱,
String[] spl = childname.split(",");
但還有更好的方法,然後這個,如果你可以改變你的方法的簽名,這樣你就可以創造出可以採取一個數組或名稱inste的列表的方法廣告:
public String getChildrenNames(String...childnames) {
或
public String getChildrenNames(Lis<String> childnames) {
你甚至可以創建例如對象:
class Person{
private String firstname;
private String lastname;
//getters and setters
}
然後你的方法應該採取一個數組或Person對象的列表:
public String getChildrenNames(List<Person> childname) {
正如人們所說,你需要通過他們作爲一個數組,所以你的代碼應該是這樣的:
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);
}
有了這個你childnamesAux變量應該有:{「名1家庭」,「名稱2家庭」,「NAME3家庭」}
現在你可以,如果你把它試試這個
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;
}
child("Paul","walker");
輸出爲 Paul Walker 希望對此有所幫助
難道你不能改變接受兩個參數的方法?? – Jeff