2010-11-19 71 views
1

我想在運行時追加一個字符串,但此代碼再次添加上一個單詞而不是追加新單詞。在字符串中追加文本

Customer.java:

public String getCustomerQuestion() { 
    return CustomerQuestion; 
} 
public void setCustomerQuestion(String customerQuestion) { 
CustomerQuestion = customerQuestion; 
} 
public void appendmessage(String msg){ 
CustomerQuestion = CustomerQuestion +" "+ msg; 
} 

Main.java:

Customer _Customer =new Customer(); 
Request_Message Request= new Request_Message; 
_Customer.setCustomerQuestion(Request.getInput()); 
String _string=Request.getInput(); 
_Customer.appendmessage(_string); 
String str=__Customer.getCustomerQuestion(); 
System.out.println("now new Question() is"+str); 

當我將RAM寫入,然後按當我寫這辛格結果顯示後再次進入:在控制檯砣砣。 我想顯示ram singh作爲一個字符串。 `public class Request_Message { {0}私人String _Input;

public void setInput(String line) { _Input = line; } public String getInput() { return _Input; }`

它需要從聊天窗口輸入。

+0

有沒有這樣的對象作爲'__Customer'?實例變量的命名方案也很奇怪。大寫字母? – 2010-11-19 08:07:51

+0

爲什麼在示例中的其他任何地方使用_Customer時,您在名爲_ITChatParticipant的對象上使用getCustomerQuestion?這是一個錯字嗎? – Erik 2010-11-19 08:09:19

回答

0

請勿使用字符串連接。改爲使用適當的StringBuffer

private StringBuffer customerQuestion = new StringBuffer(); 

public void appendmessage(String msg){ 
    customerQuestion.append(msg); 
} 

public String getCustomerQuestion() { 
    return customerQuestion.toString(); 
} 

當然,這可能不是你的具體問題的原因(爲此事看喬恩斯基特的答案),但是這可能是未來的一個瓶頸。 A StringBuffer是使用String並將文本串聯起來的正確方法。

+2

這是不是很清楚,這是否合適,並且不能解釋OP所看到的行爲。 – 2010-11-19 08:08:24

+0

最好在刪除這篇文章之前,有人來推薦'StringBuilder'。 ;) – 2010-11-19 09:01:59

+0

字符串串聯在這個應用程序中是一個「瓶頸」,肯定會成爲OPs問題中最小的問題 – fish 2010-11-19 10:41:26

2

您還沒有顯示什麼Request.getInput()做什麼。我嫌疑人這就是問題所在。如果運行會發生什麼:

System.out.println(Request.getInput()); 
System.out.println(Request.getInput()); 

並輸入兩個不同的字符串?

如果你可以發佈一個簡短的,但是完整的程序,我們可以肯定會發生什麼事情。

(在一個側面說明,如果按照正常的Java命名約定,它很可能是其他人更容易跟隨你的代碼。)

+0

它只打印第一個字符串。它不需要第二個string.please幫助.. – singh 2010-11-19 08:51:43

+0

@singh:這很難提供幫助,因爲這顯然是'Request.getInput()'中的一個問題,並且你根本沒有給我們提供任何信息* 。 – 2010-11-19 09:19:38