整个一中文编码的问题。

使用循环也简单。
String str = "我AC中国"; int max = 8;int index = 0;int i=0;
for(i=0;i<str.length();i++) {
index += str.substring(i, i+1).getBytes().length;
if(index>=max) break;}
System.out.println(str.substring(0, i+1));


import java.lang.*;
class SplitString
{
String SplitStr;
int SplitByte;
public SplitString(String str,int bytes)
{
SplitStr=str;
SplitByte=bytes;

}
public void SplitIt()
{

try{

String SplitStr2=new String(SplitStr.getBytes(),"8859_1");

if(SplitByte>SplitStr2.length())
{
System.out.println(SplitStr);
}
else
{

int i=0;
String result="";
int s=SplitByte;
for(i=0;i<s;i++)
{
String aa=SplitStr.substring(i,i+1);
String bb=new String(aa.getBytes(),"8859_1");
if(bb.length()==2)
{
s--;
}
result+=aa;

}
int ee=new String(result.getBytes(),"8859_1").length();
if(ee!=SplitByte)
{
System.out.println(result.substring(0,result.length()-1));
}
else{

System.out.println(result);
}
}

}catch(Exception e)
{
}

}


public static void main(String[] args)
{


SplitString str=new SplitString("我ABC汉D文EF",10);
str.SplitIt();

}
}

import java.lang.*;
class SplitString
{
String SplitStr;
int SplitByte;
public SplitString(String str,int bytes)
{
SplitStr=str;
SplitByte=bytes;
}
public void SplitIt()
{
try{
String SplitStr2=new String(SplitStr.getBytes(),"8859_1");
if(SplitByte>SplitStr2.length())
{
System.out.println(SplitStr);
}
else
{
int i=0;
String result="";
int s=SplitByte;
for(i=0;i<s;i++)
{
String aa=SplitStr.substring(i,i+1);
String bb=new String(aa.getBytes(),"8859_1");
if(bb.length()==2)
{
s--;
}
result+=aa;

}
int ee=new String(result.getBytes(),"8859_1").length();
if(ee!=SplitByte)
{
System.out.println(result.substring(0,result.length()-1));
}
else{
System.out.println(result);
}
}
}catch(Exception e)
{
}
}
public static void main(String[] args)
{
SplitString str=new SplitString("我ABC汉D文EF",10);
str.SplitIt();
}
}