为什么我在Java中无休止地附加一个String

时间:2012-11-05 21:43:46

标签: java

我正在写一个游戏,当我尝试向服务器发送聊天消息时,我得到一个奇怪的内存泄漏。 发送字符串: !聊天¥测试 变成:

!chat¥test
!chat¥!chat¥test
!chat¥!chat¥!chat¥test
!chat¥!chat¥!chat¥!chat¥test
!chat¥!chat¥!chat¥!chat¥!chat¥test
!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥test
!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥test
!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥test
!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥test
!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥test
!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥!chat¥test
Ect, ect.


Sending message:

Utils.sendChat(message.getText());

public static void sendChat(String s) {
    System.out.println(s);
    sendChat("!chat"+Wrapper.commandSplit+s);
}

public static void sendTextLine(String s){
    s = s.replace(" ", "[SPACE]");
    System.out.println(s);
    Wrapper.pw.write(s);
     Wrapper.pw.flush();
}

我不知道为什么会这样,有人能帮帮我吗? 我使用'¥'来分割字符串中的变量,之前没有给我任何问题,所以我怀疑它与它有什么关系。

感谢。

1 个答案:

答案 0 :(得分:10)

public static void sendChat(String s) {
    System.out.println(s);
    sendChat("!chat"+Wrapper.commandSplit+s);
}

每次再次调用sendChat时,这是一个无限循环,构建更长和更长的字符串。

您可能打算在第二行拨打sendTextLine吗?