fish8077 发表于 2013-1-26 16:21:27

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串

最近挺火的一道面试题。
public class Test {public static void main(String[] args) {String str = "汉字ABD不是ABC";System.out.println(splitStr(str, 8));}// 判断是不是汉字public static boolean isCh(char c) {String temp = String.valueOf(c);return temp.getBytes().length>1?true:false;}// 获取字符串的字节数public static int getStrLen(String str) {int len = 0;char[] cs = str.toCharArray();for (int i = 0; i < cs.length; i++) {if (isCh(cs)){len += 2;} else {len += 1;}}return len;}/** * 截取字符串 ** @param inputStr 输入的字符串 * @param len 指定长度的字节数 */ public static String splitStr(String inputStr, int len) {   StringBuffer sb = new StringBuffer();int length = getStrLen(inputStr);// 如果是空字符串或者字节数大于整个字符串的字节数,则直接返回空字符串if (inputStr == null || inputStr.equals("") || len>length) {return "";}// 如果指定长度的字节数等于0,则返回字符串if (len == 0) {return inputStr;}char[] cs = inputStr.toCharArray();int temp = 0;for (char c : cs) {if (temp < len) {if (isCh(c)) {temp = temp + 2;sb.append(c);} else {temp = temp + 1;sb.append(c);}} else {break;}}    return sb.toString();   }   }
页: [1]
查看完整版本: 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串