如何修复通过 Telnet 发送到 Java 中的 Inputstream 的退格键?

How to fix backspaces sent via Telnet to Inputstream in Java?

在我的 Java 聊天服务器上,用户可以通过在消息前面使用退格键来更改用户名。

我目前正在 Java 编写聊天服务器和客户端。它工作得很好,但我有烦人的 'bug',用户可以通过在消息前面使用退格键来发送没有用户名的消息,因为 telnet 或使用的 BufferedReader-InputStream 正在消息字符串中保存退格键。

我尝试替换退格键,这使得用户无法更改拼写错误。

我不知道接下来应该尝试什么。

示例: Test>[10 backspaces]This is a test. 其他人收到消息 This is a test. 但实际消息应该是 Test:This is a test.

这行代码部分解决了我的问题:

while (input.contains("\b")) input = input.replaceAll("^\b+|[^\b]\b", "");