很多场景的编程都是回归到最基本的基础应用:字节数组输入流ByteArrayInputStream的应用
样例:
00000154***********(某协议传输的内容1)00012323*******************(某协议传输的内容2) … 00000859******(某协议传输的内容3)
其中,连续8byte的数字代表业务信息协议内容的长度,后边“******”即为某协议传输的消息内容(UTF-8编码)
说明:
此处8byte意为连续8个字符,每个字符内存储一个数字,连续8个字符共同代表一个数字
按照样例进行通信传输,到接收方只要解出对应的协议内容部分。
方法一:
public static List<String> readMessage(String message) throws Exception {
List<String> list = new ArrayList<String>();
while ( true ) {
if(message == null || message.equals("")) {
break;
}
String strLen = message.substring(0, 8);
int len = Integer.parseInt(strLen);
list.add(message.substring(8, 7+1+len));
message = message.substring(8+len);
}
return list;
}
方法二:
public static List<String> readMessage(byte[] all) throws Exception {
List<String> list = new ArrayList<String>();
ByteArrayInputStream input = new ByteArrayInputStream(all);
byte[ ] b = new byte[8];
while (true) {
String temp = null;
String msgString = null;
if (input.read(b) == -1)
break;
temp = Utils.byteToString(b);
if (temp == null)
continue;
int msglength = Integer.parseInt(temp.trim());
byte[] tempb = new byte[msglength];
if (input.read(tempb) == -1)
break;
if (tempb != null) {
msgString = Utils.byteToString(tempb);
if (!Utils.IsNullStr(msgString))
list.add(msgString);
}
}
return list;
}
相关推荐
1.字符串的概述: 字符串在Java中被作为String类型的对象来处理。位于java.lang中,创建string对象的格式是: String s = new String(); //创建一个空的字符串 或者 String s = new String(“helloworld”)...
可以将输入的带运算符号的字符串解析为表达式,支持任意长度的加减乘除运算,比如1+2*3/(5-1),swing图形界面,包含完整源码
一个字符串包含了空个等标点符号,计算出现次数最多的字母和该字母出现次数 开发提示:可以使用Map,key是字母,value是该字母的次数
首先该方法会使用给定的字符串与当前字符串进行全匹配,当找到位置后,会将给 定字符串中第一个字符在当前字符串中的位置返回。常用来查找关键字使用。 重载方法: int lastIndexOf(String str):返回给定的...
这个文件里的内容适合Java初学者,String类为引用类,不属于基本数据类型,但是String类非常的重要,在后边学习的JavaSE中,几乎使用的全是String类,这个文件里边包含了对String字符串的拆分、拼接以及怎么声明进行...
将7位字符编码为6或5位以减少字符串大小的有效算法
JAVASE包括:Unit01: API文档 、 字符串基本操作 am,Unit01: API文档 、 字符串基本操作 pm,Unit02: 正则表达式 、 Object 、 包装类 am,Unit02: 正则表达式 、 Object 、 包装类 pm,等课程。
在本次实习中,我们学习了Java中的字符串处理方法,掌握了字符串的基本操作和处理技巧。 知识点9:Java中的面向对象编程 Java语言是一种面向对象的编程语言,支持封装、继承和多态等面向对象编程机制。在本次实习中...
1 掌握字符串的创建方式 2 熟练使用字符串的常用方法 3 掌握StringBuilder的基本使用和常用方法
【原创作者田超凡,未经许可请勿转发,侵权仿冒必究】
JavaSE基础运算符:字符串连接运算符、三元运算符;控制语句:if、接收用户键盘输入
Java SE编程入门教程 String字符串(共27页).pptx Java 位运算.docx java正则表达式例子大全 共10页.doc JAVA正则表达式实例教程 共17页.docx JAVA正则表达式实例教程 共17页.pdf 递归算法.docx 堆和栈.wps
使用 zxing-core-3.2.0.jar 和 zxing-javase-3.2.0.jar 将字符串转化为二维码图片并输出-附件资源
本压缩包详尽列举了JavaAPI当中的System、Runtime、Math、Date、Calendar类的实例,特别是日期格式与字符串格式的各种灵活转换。更多内容请参见:http://blog.csdn.net/zhongkelee
第13章 字符串——优异的内存组织机制 243 13.1 String类的基础知识 243 13.1.1 对象的创建 243 13.1.2 巧用构造器 244 13.1.3 String类的重要方法 245 13.2 String对象的内存机制 248 13.2.1 一段令人...
某前辈积累的代码整理,包括字符串解析 数据库连接 正则 访问xml 还有些小算法等
username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的eqals比较,否则会产生NullPointerException异常。 注意:逻辑或运算符(|) 和短路或运算符(||)的...