为什么80%的码农都做不了架构师?>>>   

在C语言中通过memcpy很容易拷贝任一数据字节的数据(在数据允许的情况下),但是在JAVA可以用用什么方式替代呢?

在JAVA一般用二字节表示一个字母。

在做通讯交易的情况下,总会传很多报文,而报文总会时不时的包含一些结束符如'0x00',但是用常规的方式截取如 new String(buf, pos + 2, length); 来获得字符串,往往会出错(因为其遇到一些特殊的字符如结束符,会在计算字符串的操作出错)。但是用 new String(buf, pos + 2, length,"ASCII"),可以解决。

这里涉及到字符的字集问题(即最小单位)。

这里有一个测试的例子。关于8583报文的交易报文。

请求为:(前面增加了二个字节的长度)

----------------------------------------------------------------

01 05 60 00 03 00 00 61 31 00 31 10 02 01 00 70 24 06
C0 20 C0 9A 11 16 62 25 00 00 00 00 00 22 03 00
00 00 00 00 01 10 00 00 00 24 30 10 05 10 00 02
06 12 29 62 25 00 00 00 00 00 22 D3 01 02 01 00
00 0F 30 30 30 30 30 31 34 30 38 30 31 31 31 30
30 37 35 34 32 30 30 30 31 31 35 36 4A AA A5 BA
E2 BA EF F7 26 00 00 00 00 00 00 00 01 34 9F 26
08 2D C8 83 F9 35 57 DE A2 9F 27 01 80 9F 10 08
07 00 01 03 A0 00 02 01 9F 37 04 EE DD 84 5E 9F
36 02 00 1D 95 05 00 00 04 88 00 9A 03 14 02 28
9C 01 03 9F 02 06 00 00 00 01 10 00 5F 2A 02 01
56 82 02 7C 00 9F 1A 02 01 56 9F 03 06 00 00 00
00 00 00 9F 33 03 E0 E1 C8 9F 34 03 42 03 00 9F
35 01 22 9F 1E 08 30 32 31 35 30 33 37 30 9F 09
02 00 20 9F 41 04 00 00 00 24 84 08 A0 00 00 03
33 01 01 02 00 13 10 00 00 50 00 05 00 33 30 38
30 44 36 42 38

---------------------------------------------------------------------------

解析的内容为:

[F002]  type=[  LLNVAR]  len=[016] value=[6225000000000022]
[F003]  type=[ NUMERIC]  len=[006] value=[030000]
[F004]  type=[  AMOUNT]  len=[012] value=[000000011000]
[F011]  type=[ NUMERIC]  len=[006] value=[000024]
[F014]  type=[   DATE4]  len=[004] value=[0610]
[F022]  type=[ NUMERIC]  len=[003] value=[051]
[F023]  type=[ NUMERIC]  len=[003] value=[000]
[F025]  type=[ NUMERIC]  len=[002] value=[06]
[F026]  type=[ NUMERIC]  len=[002] value=[12]
[F035]  type=[  LLNVAR]  len=[029] value=[6225000000000022D301020100000]
[F041]  type=[   ALPHA]  len=[008] value=[00000140]
[F042]  type=[   ALPHA]  len=[015] value=[801110075420001]
[F049]  type=[   ALPHA]  len=[003] value=[156]
[F052]  type=[   ALPHA]  len=[011] value=[J衡猴?   ]
[F053]  type=[ NUMERIC]  len=[016] value=[2600000000000000]
[F055]  type=[  LLLVAR]  len=[134] value=[?&-???5W???' ??

[F060]  type=[ LLLNVAR]  len=[013] value=[1000005000050]
[F064]  type=[   ALPHA]  len=[008] value=[3080D6B8]

可以看出F55域有很多特殊的字符存在。

==============================================

String c = new String(a.getBytes(), "ASCII");
System.out.println(c.length());

转载于:https://my.oschina.net/3pgp/blog/204673

JAVA中类似C中memcpy功能相关推荐

  1. java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能

    想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...

  2. java中类似sort_java中的Sort函数,你值得看

    基于C语言中的sort如此这么方便,自然而然,java中也有类似C的sort函数. 1.普通数组:Arrays.sort(数组名,开始位置,结束位置). 2.类中属性排序: 模板: class A { ...

  3. MySQL中类似ORACLE中decode()判断语句实现

    一. IF函数 1. IF语句 IF expression THEN statements; END IF; 2. IF ELSE语句 IF expression THENstatements; EL ...

  4. java unescape_Java实现JS中的escape和UNescape代码分享

    众所周知,JavaScript中escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串.下面,我们就来看看 Java语言中类似JavaScript中的escape() 和un ...

  5. java快速注释怎么配置_详解如何在低版本的Spring中快速实现类似自动配置的功能...

    在 Spring 4 后才引入了 @Conditional 等条件注解,它是 Spring Boot 中实现自动配置的最大功臣! 那么问题来了:如果我们还在使用 Spring 3.x 的老版本,这时候 ...

  6. Java实现类似C/C++中的__FILE__、__FUNC__、__

    原文地址 import java.text.SimpleDateFormat; import java.util.Date; /** * Java实现类似C/C++中的__FILE__.__FUNC_ ...

  7. java回调函数 final_java中带回调函数的字符串替换,类似js中的replace(rgExp,function)...

    在js中, replace函数的功能很强大,其原型是stringObj.replace(rgExp, replaceText), 而replaceText也可以是返回替换文本的函数.这个功能还是比较好 ...

  8. Java类似相机中图像处理(上)

    Java类似相机中图像处理(上) 一.前情提要 二.项目流程 \qquad 1. 创建窗体 \qquad 2. 动作监听器 \qquad 3. 获取图片文件像素值 \qquad 4. 画原画 \qqu ...

  9. R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能)

    R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能) 目录 R语言计算dataframe数据列中各分类的计数(类似pandas value

最新文章

  1. Swift中文教程(五)--对象和类
  2. 【Java8精华教程】一起爪哇Java8——好用的Stream
  3. 一键下载,双击上传,带你探索提升工作效率的秘密“武器”
  4. nginx和pcre错误问题
  5. php json 美化,php JSON数据格式化(美化)的方法
  6. 利用jquery.validate异步验证用户名是否存在
  7. ie8支持jq的html,jquery 什么版本不能用 ie8
  8. 在html中代码规范是哪个键,HTML代码规范经验
  9. 2016年CIO的五个优先级
  10. EF – 4.CRUD与事务
  11. OA系统身份认证的设计
  12. python app逆向_python之app逆向破解data参数中的PassWord DES加密无填充
  13. 有用的linux命令笔记
  14. c语言整人小程序格式,【C语言】整人小程序
  15. 聚类分析与SPSS实现——《社会统计分析方法》
  16. 我在51CTO微职位学PMP_飘过攻略及心得分享
  17. Python数据处理Tips使用OpenCV预处理图像数据的10种操作
  18. 数据挖掘实例(航空公司客户价值分析)
  19. 流量计算机常见故障,流量计40个常见故障、处理方法!多数人看完就收藏
  20. 手机网页UI框架jQuery Mobile介绍之按钮篇

热门文章

  1. web.config文件
  2. SAP事务码MM17物料主数据批量维护
  3. FFmpeg #39;scale#39; filter not present, cannot convert pixel formats.
  4. Redis学习和环境搭建
  5. iOS-APP提交上架流程(新手必看!2016年3月1日最新版)
  6. WinAPI: GetSystemDirectory - 返回 System 文件夹路径
  7. 未来几年,BCH超越BTC的路径是什么?
  8. DataGridView数据控件演示
  9. java通过抛异常来返回提示信息
  10. 关于MYSQL中like 检索汉字问题。