public static String get(String str,int in)
{
int index=in-1;//记录指针位置
byte[]by=str.getBytes();
if(index>by.length||index<0)
throw new RuntimeException("截取字节数为零,或者截取字节数超过了字符串长度");
if(by[index]>0)
return new String(by,0,index+1);
int num=index;//为了保留index初始位置,因此定义一个num
while(by[num]<0)
{//循环至指针到0,或者非中文字符,若非中文字符不用进循环,直接返回
if(num==0)
{
num--;
break;
}
num--;
}
if(num<0)
{
if(index%2==0)
return new String(by,0,index);
return new String(by,0,index+1);
}
if((index-num)%2!=0)//指针移动量若为偶数,代表原来指针所在为汉字字符的第二个字节,可以输出此字节
return new String(by,0,index);
return new String(by,0,index+1);
}刚才的错了点 ,精简的太多了 出错了 这个还好 |