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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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<bytes.length&&n<length;n++,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();

}

}

以上是关于java按照字节切割字符串,解决汉字的问题的主要内容,如果未能解决你的问题,请参考以下文章

美观化文字《汉字的切割问题》

java 按字节截取字符串问题

java一个汉字占几个字节?

带有汉字的字符串截断出现半个“汉字”的解决方法-C语言源码

java字节流对汉字输出为乱码的问题

从给定字符串中截取n个字节的字符(解决汉字截取乱码问题)