Java精确截取字符串,取得字符串前面指定长度字符函数
用java取得字符串的前面部分内容的函数contentStr = contenttemp.substring(0, 150);其中要保证最大长度不能超过字符串的长度。下面是我的实现部分代码,以及网上搜索的相关代码:
/* * content内容过长可能会导致xml文件过大,加载太慢。 * 但从seo的角度考虑全部输出有利于搜索引擎,但一般情况下内容也不会太多 * 为防止空格换行css无法控制撑大页面,用正则表达式替换掉空格,所以截取前面100个字符,页面显示的内容多少用css控制 */ //str.trim().replaceAll("\\s+"," "); String contenttemp = rs.getString(contentName).trim().replaceAll("\\s+",""); //NpfDebug.print(contenttemp.length()); if(contenttemp.length()>100){//如果长度大于100则截取 contenttemp = contenttemp.substring(0, 100); //NpfDebug.print("contenttemp.length()>100 ? "+contenttemp.length()+"\n"+contentStr); } rsbody.append(beforCONTENT); rsbody.append(contenttemp); rsbody.append(endCONTENT);
开发中经常遇到,字符串过长,无法完全显示的问题
这时候就需要截取我们所需要的长度,后面显示省略号或其他字符。
由于中文字符占两个字节,而英文字符占用一个字节,所以,单纯地判断字符数,效果往往不尽如人意
下面的方法通过判断字符的类型来进行截取,效果还算可以:)
如果大家有其他的解决方法欢迎贴出来,共同学习:)
private String str; private int counterOfDoubleByte; private byte b[]; /** * 设置需要被限制长度的字符串 * @param str 需要被限制长度的字符串 */ public void setLimitLengthString(String str){ this.str = str; } /** * @param len 需要显示的长度(<font color="red">注意:长度是以byte为单位的,一个汉字是2个byte</font>) * @param symbol 用于表示省略的信息的字符,如“...”,“>>>”等。 * @return 返回处理后的字符串 */ public String getLimitLengthString(int len, String symbol) throws UnsupportedEncodingException { counterOfDoubleByte = 0; b = str.getBytes("GBK"); if(b.length <= len) return str; for(int i = 0; i < len; i++){ if(b[i] < 0) counterOfDoubleByte++; } if(counterOfDoubleByte % 2 == 0) return new String(b, 0, len, "GBK") + symbol; else return new String(b, 0, len - 1, "GBK") + symbol; } //------------------- /** *//** * 按字节长度截取字符串 * @param str 将要截取的字符串参数 * @param toCount 截取的字节长度 * @param more 字符串末尾补上的字符串 * @return 返回截取后的字符串 */ public String substring(String str, int toCount, String more) ...{ int reInt = 0; String reStr = ""; if (str == null) return ""; char[] tempChar = str.toCharArray(); for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++) ...{ String s1 = str.valueOf(tempChar[kk]); byte[] b = s1.getBytes(); reInt += b.length; reStr += tempChar[kk]; } if (toCount == reInt || (toCount == reInt - 1)) reStr += more; return reStr; } //================= /** * 取字符串的前toCount个字符 * * @param str 被处理字符串 * @param toCount 截取长度 * @param more 后缀字符串 * @version 2004.11.24 * @author zhulx * @return String */ public static String substring(String str, int toCount,String more) { int reInt = 0; String reStr = ""; if (str == null) return ""; char[] tempChar = str.toCharArray(); for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++) { String s1 = str.valueOf(tempChar[kk]); byte[] b = s1.getBytes(); reInt += b.length; reStr += tempChar[kk]; } if (toCount == reInt || (toCount == reInt - 1)) reStr += more; return reStr; }
得到字符串真实长度和取固定长度的字符串函数
// 截取固定长度子字符串 sSource为字符串iLen为长度 function getInterceptedStr(sSource, iLen){ if(sSource.replace(/[^\x00-\xff]/g,"xx").length <= iLen) { return sSource; } var ELIDED = ""; var str = ""; var l = 0; var schar; for(var i=0; schar=sSource.charAt(i); i++) { str += schar; l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1); if(l >= iLen - ELIDED.length) { break; } } str += ELIDED; return str; }
参考网址:
http://developer.51cto.com/art/201112/308444.htm
http://www.cnblogs.com/myphoebe/archive/2011/12/20/2294171.html
相关推荐
Java精确截取字符串
Java精确截取字符串.pdf
Java精确截取字符串[归类].pdf
SQL截取字符串函数(1、截取从字符串左边开始N个字符 2、截取从字符串右边开始N个字符(例如取字符www.163.com) 3、截取字符串中任意位置及长度 等等)
string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos); 其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子...
oracle,按特定字符,截取字符串,直接出结果 oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果
解决截取字符串中带有汉字的问题,以防截取时汉字截取一般出现错误情况
C# 按照字节长度截取字符串,可以截取任意字节长度得字符串,使用了一点正则表达式。
各种java截取字符串方法及参数使用解释说明
java编写一个截取字符串的函数,输入为一个字符串和字节数
bat截取字符串
用SQL语句截取字符串, string substr ( string string, int start [, int length]) 参数1:处理字符串 参数2:截取的起始位置(第一个字符是从0开始) 参数3:截取的字符数量
js截取字符串常用的方法很多,你知道多少呢?看看String和StringBuffer如何截取字符串的
这个小demo是截取字符串的,有2个代码,还有取消字符串中的空格,可以看看。
适合刚刚进入(JavaScript,Vue)编程领域的小白使用
substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 ...
ASP截取字符串(既:利用asp代码控制字符的显示)
CString截取字符串全攻略 - fox的日志 - 网易博客.mht
C#经常用到的几个截取字符串1 取字符串的前i个字符2 去掉字符串的前i个字符:3 从右边开始取i个字符:
java截取字符串,一道面试题。好像没有找到正确答案,今天找时间做了一个,仅供参考。本人运行过了。