java分割汉字_java按照字节切割字符串,解决汉字的问题

编写一个截取字符串的函数,输入为一个字符串,截取开始地址,截取字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,

如“我ABC”,0,4,应该截为“我AB”,输入“我ABC汉DEF”,1,4,应该输出为“ABC”而不是“ABC+汉的半个”。

import java.io.UnsupportedEncodingException;

public class SubStr {

public static String bSubString(String str,int be,int length) throws UnsupportedEncodingException{

byte[] bytes;

bytes=str.getBytes("Unicode");

int z=be=2*be+2;

int n=0,count=0;

for(;be

if(bytes[be]==0){

n--;

}

count++;

}

System.out.println(be+" "+count+" "+n);

if(count%2==1){

if(bytes[count-1]!=0){

count--;

}else if(bytes[count-1]==0){

count++;

}

}

return new String(bytes,z,count,"Unicode");

}

public static void main(String[] args) {

String str="中国abc";

try {

System.out.println(bSubString(str,0,5));

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值