关键字: 字符串长度
/*
* * 计算字符串的字节长度(字母数字计1,汉字及标点计2) *
*/
public static int byteLength(String string) {
int count = 0;
for (int i = 0; i < string.length(); i++) {
if (Integer.toHexString(string.charAt(i)).length() == 4) {
count += 2;
} else {
count++;
}
}
return count;
}
}
/**
* @author cn
* @param s 要截取的字符串
* @param length 要截取字符串的长度->是字节一个汉字2个字节
* return 返回length长度的字符串(含汉字)
*/
public static String bSubstring(String s, int length) throws Exception
{
byte[] bytes = s.getBytes("Unicode");
int n = 0; // 表示当前的字节数
int i = 2; // 要截取的字节数,从第3个字节开始
for (; i < bytes.length && n < length; i++){
// 奇数位置,如3、5、7等,为UCS2编码中两个字节的第二个字节
if (i % 2 == 1){
n++; // 在UCS2第二个字节时n加1
}
else{
// 当UCS2编码的第一个字节不等于0时,该UCS2字符为汉字,一个汉字算两个字节
if (bytes[i] != 0){
n++;
}
}
}
// 如果i为奇数时,处理成偶数
/*if (i % 2 == 1){
// 该UCS2字符是汉字时,去掉这个截一半的汉字
if (bytes[i - 1] != 0)
i = i - 1;
// 该UCS2字符是字母或数字,则保留该字符
else
i = i + 1;
}*/
//将截一半的汉字要保留
if (i % 2 == 1){
i = i + 1;
}
return new String(bytes, 0, i, "Unicode");
}
分享到:
相关推荐
C#字符串截取固定长度的方法
1、 当字符串全部为单字节字符时,则可以用SubString方法截取指定长度即可。 2、 当字符串全部为双字节字符时,则只需要用SubString方法截取指定长度的一半 3、 当字符串为单字节双字节混合时,则我们可以用折中这样...
Len函数获取字符串字节长度(中英数都是1字节) Right右截取字符串函数 SubString中间截取字符串函数 Left左截取字符串函数 stuff指定位置插入字符串、删掉字符串函数 查看数据库信息功能大全 存储过程解析大全 获取...
现在假设一串输入为UTF8编码,如何能准确的定位到每个UTF8字符的“CharPoint”,而不会错误的分割字符呢? 参考这个页面:http://www.nubaria.com/en/blog/?p=289 可以改造出下面的函数: const unsigned char ...
/// <summary>/// 字符串长度(按字节算)/// </summary>/// ”str”></param>/// <returns></returns>static int StrLength(string str){ int len = 0; byte[] b; for (int i = 0; i < str.Length; i++) { b...
核心思路:输入一个字符串和字节数,输出按字节数截取字符串, 其中要保证汉字不能被截半个字节,设计思路就是判断汉字占几个字节,通过string.valueof.getBytes()方法获取字符的字节数,之后遍历判断不要超过指定的...
1、length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length(); 2、charAt() 截取一个字符 例:char ch; ch="abc".charAt(1); 返回'b' 3、getChars...
做为一个前端开发人员在网页展示中经常会碰到,标题过长,需要截取字符串,用CSS的实现的话各种兼容问题,各种坑。... 网络上流传一个Javascript简单获取字节长度的方法: 代码如下: String.prototype.Blength
strlen:获取字符串长度,字节长度 substr:字符串截取,获取字符串(按照字节进行截取) strchr:与substr相似,从指定位置截取一直到最后 strrchr(获取文件后缀名):与strchr一样,只是从右边开始查找字符 ...
趁我写例子这点时间有两个人回答了 呵呵 刚才试验过了 看下例子吧 JS 方法: 代码如下: [removed] // 得到字符串的真实长度(双字节换算为两个单字节) function getStrActualLen(sChars) { //sChars.replace(/[^\x...
17.截取字节数组 18.int转byte数组 19.byte数组转int 20.字节数组逆序 21.异或校验/BCC异或校验 22.将16进制字符串低位字节补零 23.将十进制整数转为十六进制数,并补位 24.十六进制字符串 高低位转换 25.蓝牙传输 ...
int strlen ( string $string ) 获取给定字符串的[字节]长度 成功则返回字符串$string的长度,如果$string为空,则返回 0。 <?php $str1 = abcdef; //输出6 $str2 = ab cd ; //输出7,注意,开头、结尾、中间...
截取指定长度字符串 折线图 按照比例改变图片大小(非生成缩略图) 收藏主页 数据验证类 数组转换成XML格式 日期计算 是否为电子邮件格式 柱形统计图 检查是否为一个合法的时间格式 检测URL地址有效性 检测...
#截取字符串,每次做截取后的字符串存放在该变量中,初始为函数参数in_string值 DECLARE tmp_str VARCHAR(21845) CHARSET gbk DEFAULT '' ; #tmp_str的长度 DECLARE tmp_len SMALLINT DEFAULT 0; #tmp_str的长度 ...
因为密钥长度影响可加密明文的最大长度,所以按文字截取然后加密并base64编码,就这样将每次加密并base64编码候的字符串连接起来,解密的时候每次取出固定字节数(加密任何长度明文都产生固定长度的密文),进行解密...
字符类型 char 1~2000字节 固定长度字符串,长度不够的用空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) ...
//获取字符串中指定的字符 UnicodeChar = (int)tem_Character; //获取当前字符的Unicode 编码 if (UnicodeChar >= 97 && UnicodeChar ) //对字符进行加密 { UnicodeChar = UnicodeChar + 13; } else if (Unicode...
0177 截取指定位置的字符串 115 0178 清除字符串中指定的字符 115 0179 如何实现文本的加密与解密 116 0180 提取字符串中指定子字符串后的字符串 117 0181 替换指定的字符串 117 0182 在文本中删除指定的...