截取字符串,含有汉字和字母,不能截半个汉字
package njupt.cn;
/*****
* 截取字符串,含有汉字和字母,不能截半个汉字
*/
import java.io.UnsupportedEncodingException;
public class five {
public static void main(String[] args){
String s="我ABC汉字DEF";
int n=4;
try {
String str=cutString(s,n);
System.out.println(str);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String cutString(String s, int n) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
if(s!=null&&"".equals(s)){
s=new String(s.getBytes(),"GBK");
}
StringBuffer buffer=new StringBuffer();
if (n!=0&&n<s.getBytes("GBK").length){
char c;
for(int i=0;i<n;i++){
c=s.charAt(i);
System.out.println("char c="+c);
buffer.append(c);
if(five.isChinese(c)){
--n;
}
}
}
return buffer.toString();
}
private static boolean isChinese(char c) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
if(String.valueOf(c).getBytes("GBK").length>1){
return true;
}
else{
return false;}
}
}