【发布时间】:2021-12-29 15:17:11
【问题描述】:
我尝试编写一个 java 客户端服务器应用程序,用于在客户端之间私下聊天。我正在寻找一种方法来编写命令以向一个或多个接收者发送消息,我想用如下命令处理它: /发送用户名用户名消息 但我很快发现,用户名和消息之间的字符不能在消息中重复,因为这样它就不会知道消息是什么,收件人是什么,使用预先安排的字符似乎也有一些含义,比如无法在用户名或消息中使用该字符。 处理这种事情有什么好方法?
【问题讨论】:
我尝试编写一个 java 客户端服务器应用程序,用于在客户端之间私下聊天。我正在寻找一种方法来编写命令以向一个或多个接收者发送消息,我想用如下命令处理它: /发送用户名用户名消息 但我很快发现,用户名和消息之间的字符不能在消息中重复,因为这样它就不会知道消息是什么,收件人是什么,使用预先安排的字符似乎也有一些含义,比如无法在用户名或消息中使用该字符。 处理这种事情有什么好方法?
【问题讨论】:
您可以通过在您的案例空字符串中拆分最后一次和第一次出现的分隔符来确定什么是消息和什么是用户名。假设用户输入是 inputStr
int firstOccurance = inputStr.indexOf(" ");
int lastOccueance = inputStr.lastIndexOf(" ");
然后这样拆分
String command = inputStr.substring(0,firstOccurance); // /send
String users = inputStr.substring(firstOccurance+1,lastOccurance); //UserName UserName
String msg = inputStr.substring(lastOccurance+1); //msg
【讨论】:
使用空格作为分隔符会导致消息本身不能包含空格的问题。
相反,您可以使用特殊分隔符来指示特定子字符串是消息。
一些非常常见的分隔符是| ;
【讨论】: