String构造函数用法

由于客户端发送过来的指定长度字符串报文都是按字节长度来计数的,且通讯底层也是通过字节进行发送,故在服务端接收报文时都是先按字节统一接收后暂存在字节数组中。在截取字符串报文指定域时,都是先手动分配内存空间,然后使用System.arraycopy(Object src,int strPos,Object dest,int destPos,int length)函数将报文字节数组中指定索引位置及字节数copy到先前手动分配内存空间,然后再通过new String(byte[] bytes)或new String(byte[] bytes,String encoding)生成字符串,不仅繁琐,而且效率也不高。最近发现了新大陆,String竟还有另外很多很实用的构造函数,今天登记一下,以后备查。

new String() 构造一个空字符串对象。

new String(byte[] bytes) 通过byte(字节)数组构造字符串对象。

new String(bytes[] bytes,String encoding) 通过byte(字节)数组,按encoding编码构造字符串对象。

new String(byte[] bytes,int offset,int length) 通过获取从offset下标处开始,总共length个byte(字节)的子byte(字节)数组,构造字符串对象。

new String(byte[] bytes,int offset,int length,String encoding) 通过获取从offset下标处开始,总共length个byte(字节)的子byte(字节)数组,按encoding编码构造字符串对象。

new String(String original) 构造一个original字符串的副本,即copy一个original字符串。

例:

byte[] bytes = new byte[]{‘a’,’b’,’c’,’d’,’e’,’f’};

String str_empty = new String();

String str = new String(bytes);

String str_utf8 = new String(bytes,”utf-8”);

String str2_3 = new String(bytes,2,3);

String str2_3_utf8 = new String(bytes,2,3,”utf-8”);

String copy_str2_3_utf8 = new String(str2_3_utf8);

System.out.println(str_empty);

System.out.println(str);

System.out.println(str_utf8);

System.out.println(str2_3);

System.out.println(str2_3_utf8);

System.out.println(copy_str2_3_utf8);

输出:

abcdef

abcdef

cde

cde

cde

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值