package
com.sytdc.cxl;
public class StringSplit2 ... {
/** *//**
* 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
* 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,
* 输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
*
* @param args
*/
public static void main(String args[])...{
String s = "ABC汉DEF";
int len = 3;
SplitStr(s,len);
}
public static void SplitStr(String str,int len)...{
String result = "";
char temp;
//取得的字节数
int counter=0;
int i=0;
//汉字个数
int han = 0;
while(counter < len)...{
temp = str.charAt(i);
//System.out.println(Character.getNumericValue(str.charAt(3)));
if(Character.getNumericValue(temp)!=-1)...{
//遇到字母的时候
result = result +temp;
counter++;
i++;
}else...{
//遇到汉字的时候,作为unicode字符,汉字的整数值是-1
result = result +temp;
counter = counter +2;
i++;
han = han +1;
}
}
if(counter > len)...{
if(len ==1)...{
result = "";
}else...{
result = result.substring(0,counter-(han+1));
}
}
System.out.println("result "+ result);
}
}
public class StringSplit2 ... {
/** *//**
* 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
* 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,
* 输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
*
* @param args
*/
public static void main(String args[])...{
String s = "ABC汉DEF";
int len = 3;
SplitStr(s,len);
}
public static void SplitStr(String str,int len)...{
String result = "";
char temp;
//取得的字节数
int counter=0;
int i=0;
//汉字个数
int han = 0;
while(counter < len)...{
temp = str.charAt(i);
//System.out.println(Character.getNumericValue(str.charAt(3)));
if(Character.getNumericValue(temp)!=-1)...{
//遇到字母的时候
result = result +temp;
counter++;
i++;
}else...{
//遇到汉字的时候,作为unicode字符,汉字的整数值是-1
result = result +temp;
counter = counter +2;
i++;
han = han +1;
}
}
if(counter > len)...{
if(len ==1)...{
result = "";
}else...{
result = result.substring(0,counter-(han+1));
}
}
System.out.println("result "+ result);
}
}