/* * param str 要截取的字符串 * param L 要截取的字节长度,注意是字节不是字符,一个汉字两个字节 * return 截取后的字符串 */ function cutStr(str,L){ var result = ‘‘, strlen = str.length, // 字符串长度 chrlen = str.replace(/[^\x00-\xff]/g,‘**‘).length; // 字节长度 if(chrlen<=L){return str;} for(var i=0,j=0;i<strlen;i++){ var chr = str.charAt(i); if(/[\x00-\xff]/.test(chr)){ j++; // ascii码为0-255,一个字符就是一个字节的长度 }else{ j+=2; // ascii码为0-255以外,一个字符就是两个字节的长度 } if(j<=L){ // 当加上当前字符以后,如果总字节长度小于等于L,则将当前字符真实的+在result后 result += chr; }else{ // 反之则说明result已经是不拆分字符的情况下最接近L的值了,直接返回 return result; } } } // 用例 alert(cutStr("测试1字符串哈哈哈哈",10)); alert(cutStr("abcdefghigklmn",10));
java,要实现字符串按字节截取的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java,要实现字符串按字节截取的方法相关的知识,希望对你有一定的参考价值。
String本来提供了按字符截取的substring方法,但这里要求实现按字节截取
我的思路是:
把字符串变成char[],数组遍历,判断每个元素占1个字节还是2个字节。
↓
占2个字节的字符,元素就替换成一个占1字节的占位符符号。
(中文字按字节截取总不能劈成两半吧?如果截取遇到占2个字节的却整个拿就不算按字节截取了)
↓
然后按照起始索引和最终索引拼合char数组元素,得到结果字符串。
这里最大的问题是:怎么去判断char类型所占字节长度??查了api Character类仍没有办法……
别复制粘贴过往问题,我看过了,没有满意的
/**
* 获取字符串的长度,如果有中文,则每个中文字符计为2位
*
* @param value
* 指定的字符串
* @return 字符串的长度
*/
int valueLength = 0;
int number = 0;
String chinese = "[\\u0391-\\uFFE5]";
/* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */
for (int q = 0; q < s7.length(); q++)
/* 获取一个字符 */
String temp = s7.substring(q, q + 1);
/* 判断是否为中文字符 */
if (temp.matches(chinese))
/* 中文字符长度为2 */
valueLength += 2;
//返回这个字符串中有几个汉字
number+=1;
else
/* 其他字符长度为1 */
valueLength += 1;
return number;
参考技术C var max = rules[i + 1];
//var len = field.val().length; //原有的校验
//新增的校验
//add by songyf 2013.09.12 修改maxSize 实现中英文字符长度的判断
//区分全角半角字符
var str = field.val();
var strlength=0;
for (var j=0;j<str.length;j++)
var charCode = str.charCodeAt(j);
if(charCode>=0 && charCode<=128)
strlength = strlength+1;
else
strlength=strlength + 2;
var len = strlength;
这串代码中有部分可以区分是中文字符还是英文字符 ,你看有可以用到的吗 参考技术D 占几个字节是由编码方案决定的。常见的GBK,UTF8 , UTF16各不相同。 第5个回答 2013-09-29 为啥要用char? 把一个个String截出来getbytes一下。。。本回答被提问者采纳
JS按字节截取字符长度实例2
以上是关于java,要实现字符串按字节截取的方法的主要内容,如果未能解决你的问题,请参考以下文章
用java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保
【急求】java 按字节截取字符串,从指定的位置开始,到指定的位置结束
java算法面试题:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个, 如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该