package str;
/**
* 截取指定的字符串数目,区分中文
* @author benben
*
*/
public class CheckStr2 {
/**
* 判断该字符是否为汉字,true是汉字
* @param str
* @return
*/
public boolean CheckIsC(String str)
{
boolean flag=false;
byte[] b=str.getBytes();
if(b.length>1)
{
flag=true;
}
return flag;
}
/**
* 获取字符串的bytes总长度(用于获取需要截取的长度)
* @param str
* @return
*/
public int getLenBytes(String str)
{
int len=0;
byte[] b=str.getBytes();
len=b.length;
return len;
}
/**
* 输出截取后的字符串
* @param str
* @param len 需要截取到的位置
* @return
*/
public String splitString(String str,int len)
{
String string="";
//判断输入字符串是否为空
if(str==null||str.equals(""))
{
return "";
}
//将字符串转换为char数组
char[] s=str.toCharArray();
//判断是否越界
if(len>s.length-1)
{
return str;
}
int input=len; //获取截取长度
int total=0;
int count=0; //计数器
for(char cc:s)
{
total+=getLenBytes(String.valueOf(cc));
if(total>input)
{
break;
}
count++;
}
string=str.substring(0,count); //截取最终的字符串,以便进行输出
return string;
}
public static void main(String[] args)
{
CheckStr2 c=new CheckStr2();
//String str="我ABC汉DEF";
String str="null";
System.out.println(c.splitString(str, 1));
}
}