【发布时间】:2019-08-30 16:09:54
【问题描述】:
在我的 Java Chatserver 上,用户可以通过在消息前使用退格键来更改用户名。
我目前正在用 Java 编写聊天服务器和客户端。它工作得非常好,但我有一个烦人的“错误”,用户可以在没有用户名的情况下发送消息,方法是在消息前面使用退格键,因为 telnet 或使用的 BufferedReader-InputStream 正在消息字符串中保存退格键。
我尝试替换使用户无法更改拼写错误的退格。
我不知道接下来我应该尝试什么。
示例:
Test>[10 backspaces]This is a test.
其他人收到消息This is a test.,但实际消息应该是Test:This is a test.
【问题讨论】:
-
你可以尝试在消息上做
String.trim()吗?它将删除前导和尾随空格(如果我没记错的话,包括退格和任何 Ascii 代码小于0x20的内容) -
显示的“Test:”前缀从何而来?客户端还是服务器?如果服务器,因此您的消息仅包含前导退格(不包括您不想丢失的前缀),则上述修剪空格的建议是一个很好的建议。
-
从服务器应用前缀。我尝试修剪它正在工作。感谢您的解决方案!
标签: java sockets chat inputstream telnet