首页 > 代码库 > java中文字符串截取
java中文字符串截取
/** * author geksong <br/> * function 中文字符串相关操作<br/> **/ public class ChinaStringUtil { /** * 判断字符是不是中文字符 * @param c * @return */ public static boolean isChinese(char c) { int ascii = (int)c; if(ascii >= 0 && ascii <= 255) return false; return true; } /** * 获取字符串的字节长度,中文按2字节算 * @param chstring * @return */ public static int length(String chstring) { int length = 0; if(null == chstring || chstring.equals("") || chstring.length() == 0) return 0; for(int i = 0; i < chstring.length(); i++) { char c = chstring.charAt(i); if(isChinese(c)) length += 2; else length += 1; } return length; } /** * 字符串截取,支持中文 * @param chstring * @param offset * @param length * @return */ public static String subChString(String chstring, int offset, int length) { if(null == chstring || chstring.equals("") || chstring.length() == 0) return chstring; int num = 0; int index = -1; StringBuffer sb = new StringBuffer(); for(int i = 0; i < chstring.length(); i++) { char c = chstring.charAt(i); int move = 0; if(isChinese(c)) move = 2; else move = 1; index += move; if(index >= offset) { sb.append(c); num += move; } if(num >= length) break; } return sb.toString(); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。