62,620
社区成员
发帖
与我相关
我的任务
分享public class split67L {
public static String left(String str, int index){
char[] c = str.toCharArray();//将值传递过来的字符串chr转换成字符数组
int in=0; //记录字节数,初始化为0
for(int i=0;i <c.length;i++) //循环字符数组中的元素
{
if(c[i]>255)//判断是否为中文。。中文的asc码大于255,但是中文的时候字节数加2,1个中文两个字节
{
in+=2;
}else
{
in++; //不是中文则加1 这样执行下来。得到的就是总的字节数
}
if(in==index) //当字节数==要求截取的数的时候。说明刚好读完。跳出left方法
{
return(str.substring(0,i+1)); //截取返回0-i之间的字符
}else if(in>index) //读取的时候当读到一个中文字符的时候。。这个时候字节数加2而,而要求的index字节数为in-1;这个时候应该放弃第i个字符的读取.
{
return(str.substring(0,i));//截取返回0-(i-1)之间的字符
}
}
return null;
}
}
class TiaoShi
{
public static void main(String[] args)
{
split67L a=new split67L();
System.out.println(a.left("中abc国aa国aaaccdd",10));
}
}