按byte截取字符串

要求:编写函数public static String sliceByByte(String str,int startIndex,int endIndex);

实现下面的功能:字符串str按照以下要求存放字符:英文字母数字占一个byte,汉字占2个byte。按照byte截取字符串,如果字符串包含半个汉字,则直接丢弃那半个byte。

 

关键点:

1.字符串转byte : str.getBytes();

2.如何判断一个byte是否是汉字的一部分:汉字占2个byte,且这2个byte都是小于0的

3.如何判断是否为半个汉字:

半个汉字的情况只会出现在截取字符串的开头和结尾,只需要分别判断

  1)截取byte的开头是否为半个汉字:

     从str.getBytes()[startIndex]开始,往前统计,直到出现第一个大于0的byte为止,如果出现小于0的byte数量为

  奇数,说明str.getBytes()[startIndex]是一个汉字的后半部分,应该丢弃

2) 截取byte的最后一个是否为半个汉字

    从str.getBytes()[endIndex]开始,往后统计,直到出现第一个大于0的byte为止,如果出现小于0的byte数量为奇

  数,说明str.getBytes()[endIndex]是一个汉字的前半部分,应该丢弃

 

详细代码见附件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值