我想知道如何在 Java 的缓冲区中正确分隔字符串(在 Apache MINA 中使用 IoBuffers)。这是一些示例代码:
客户端
IoBuffer buffer = IoBuffer.allocate(100);
buffer.putString("username");
buffer.putString("password");
buffer.flip();
session.write(buffer);
由于我将一个字符串一个接一个地放入字符串中,因此当服务器接收到缓冲区时,它将被视为一个字符串。
服务器端
IoBuffer buffer = (IoBuffer) message;
String username = buffer.getString(Charset.forName("UTF-8").newDecoder());
String password = buffer.getString(Charset.forName("UTF-8").newDecoder());
这将在第二个 getString() 上抛出某种异常,因为程序认为它得到了整个字符串(因为这两个字符串放在一起算作一个字符串)。
我应该如何正确分隔这两个字符串?显而易见的方法是执行以下操作:
“用户名密码”
在服务器端:
String[] args = buffer.getString(Charset.forName("UTF-8").newDecoder()).split(":", 2);
String username = args[0];
String password = args[1];
这是最好的方法吗?还是有更合适的方法来分隔这两个字符串?
非常感谢!