2011-03-11 61 views
3

我被朋友引用到這個網站。我喜歡在開始這個線程之前能夠看到一些類似的線程。不幸的是,我沒有看到這個具體問題。傳遞和返回StringBuilders:Java

我有一個問題從String中傳遞StringBuilders從對象到Java中的對象。我不知道這個問題是什麼,並且我迷路了。我可以整天傳遞和返回數據。對於StringBuilders,它不起作用。我在想,這真的很容易,我只是太沮喪,看不到。

我有一個家庭作業,要求我用我的名字,中間名和姓氏聲明3個Stringbuilders。沒問題。

它也希望3個對象做不同格式的名稱。格式化部分很容易。我無法弄清楚如何將工作返回到主體。

這裏有一個片段:

public class Builder 
{ 
    public static void main(String[] args) 
    { 
     StringBuilder str1 = new StringBuilder("John"); 
     StringBuilder str2 = new StringBuilder("Que"); 
     StringBuilder str3 = new StringBuilder("Doe"); 

     ??? = entireName(str1, str2, str3); 
    } 

    public static String entireName(StringBuilder s1, StringBuilder s2, StringBuilder s3) 
    { 
     System.out.print(s1); 
     //insert.s1('4', ' ');//format stuff, not really necessary (not a problem). 
     Ststem.out.print(s2); 
     //etc.. 
     System.out.print(s3); 
     return ????; 
    } 
} 

問題標記的東西是不是因爲什麼我擺在那裏反正工作填補。我試過聲明單獨的字符串傳回。我試過聲明這些字符串,然後在stringbuilder中使用這些字符串。我什麼都沒有。這個東西的格式化部分很簡單。如果我不能回到主體,這是錯誤的。

我真的很感激任何幫助。謝謝!

+0

所以函數的返回值應該是「約翰Que Doe」? – dsolimano 2011-03-11 20:56:10

+0

你能發佈完整的作業嗎?您聲明:「它也希望3個對象做不同格式的名稱」。我認爲這意味着你需要聲明三個新的類(至少忽略繼承/接口) – 2011-03-11 21:01:44

回答

3

假設你的版畫是進行調試,你需要s1.toString()和等

public static String entireName(StringBuilder s1, StringBuilder s2, StringBuilder s3) 
    { 
     System.out.print(s1.toString()); 
     //insert.s1('4', ' ');//format stuff, not necessary (not a problem) 
     System.out.print(s2.toString()); 
     //etc.. 
     System.out.print(s3.toString()); 
     return s1.append(s2).append(s3).toString(); 
    } 

我跑了這一點,它的工作原理:

public class Builder 
{ 
    public static void main(String[] args) 
    { 
     StringBuilder str1 = new StringBuilder("John"); 
     StringBuilder str2 = new StringBuilder("Que"); 
     StringBuilder str3 = new StringBuilder("Doe"); 

     String s = entireName(str1, str2, str3); 

     System.out.println(s); 
    } 

    public static String entireName(StringBuilder s1, StringBuilder s2, 
      StringBuilder s3) 
    { 
     // debugging removed 
     return s1.append(s2).append(s3).toString(); 
    } 

} 
+0

快14秒= +1 – 2011-03-11 20:56:10

+1

altho此修改參數1,你可能不想這樣做,在我看來你應該永遠不會返回修改的參數。如果你要修改一個參數,你應該只有一個void方法。更好的辦法是創建一個新的StringBuilder追加到它,並返回。 – MeBigFatGuy 2011-03-11 22:22:16

+0

System.out.println(StringBuffer)的作品。傳遞任何對象,它基本上在對象上做一個toString,然後打印結果。 – Jay 2011-03-11 22:30:51