将字符串生成器拆分为字符串字符串特定字符
问题描述:
我发送给安卓单独的按摩程序: 11 22 33 44 55 66 77 88 \ r \ n 11 22 33 44 55 66 77 88 \ r \ n 11 22 33 44 55 66 77 88 \ r \ n。将字符串生成器拆分为字符串字符串特定字符
但是,当连接建立到缓冲区时,随机获取readMassage,可能是11 22 33 44 55 66 77 88 \ r \ n 11 22 33 4,然后下一次建立连接建立休眠状态4 55 66 77 88 \ r \ n 11 22 33 44 55 66 77 88 \ r \ n我不会错过任何角色,但....但必须要一些如何解析它到正确的单独的按摩。
所以我需要做的是将这个生成器分成一个字符串\r\n
并发送它像11 22 33 44 55 66 77 88 \r\n
更远。 - 砰
但事情是在这里,我需要不仅将它们分开第一,但也不知何故捕获第一次读的最后一部分\r\n
这是在这个例子中11 22 3
后再CONCAT它的第一部分第二次读到\r\n
这就是这个例子:3 44 55 66 77 88 \r\n
基本上在一个连接会话它可能是2和一半的字符串要发送。
public void run() {
Log.d(TAG2, "run start");
byte[] buffer = new byte[512]; // buffer store for the stream
int intBytes; // bytes returned from read()
// Keep listening to the InputStream until an exception occurs
StringBuilder readMessage = new StringBuilder();
while (true) {
try {
intBytes = mmInStream.read(buffer);// считываю входящие данные побайтно из потока
String readed = new String(buffer, 0, intBytes); //и собираю в строку ответа
readMessage.append(readed);
if(readMessage.toString().contains("\r\n")){
String Str = readMessage.toString();
Str = Str.replace("\n", "");
// DO SOMETHING HERE with Str So the on one readMessage it could be two different Str to send in farther. And part of the next Str save some how
mHandler.obtainMessage(MESSAGE_READ, Str.length(), -1, Str).sendToTarget();
readMessage.setLength(0);
答
您可以使用String类的substring()
方法如下图所示:
readMessageString.substring(readMessageString.lastIndexOf("\r\n"),
readMessageString.length());
,然后前置一个子下一个字符串。
希望它有帮助!
你介意写清楚吗?也许你正在寻找'substring(int start,int end)'。第一个是包容性的,第二个是排他性的。 – Garamaru
好的。是。从点到点的子字符串将首先发送Str,但是当您不知道何时完成时,如何处理readMessage的最后部分。我的意思是readMassage是每次不同的长度。我发送到Android像它的所有不同的按摩:11 22 33 44 55 66 77 88 \ r \ n 11 22 33 44 55 66 77 88 \ r \ n 11 22 33 44 55 66 77 88 \ r \ n。但是可以在readMassage中随机获取,它可以是11 22 33 44 55 66 77 88 \ r \ n 11 22 33 4,然后下一次创建连接4 55 66 77 88 \ r \ n 11 22 33 44 55 66 77 88 \ r \ n我不会错过任何字符,但.... – SyRus
永远不要在评论中提供更多信息。编辑你的问题。无论如何你应该这样做。提示:预览窗口存在的原因。为了防止你对你要求花时间帮助你解决问题的人倾倒如此混乱。 – GhostCat