无乱码截取汉字字母数字混合字符串
其实思路很简单,一个汉字占两个字节,其他英文字母占一个,故,只要截的地方不在那个汉字的‘中间’就行了。
思路:奖字符串字节化,转化为字节数组,统计到限制长度左右的汉字数以及其他字母数,最后再来取舍。
public class SubString {
private String target;
public static String getSubString(String str,int limitLen)
{
String sub = null;
int len = str.length();
byte[] bytes = str.getBytes();
int num=0;
for(int i=0;i<bytes.length;i++){
if(bytes[i]<0)
num+=2;
else
num++;
if(num >= limitLen)
break;
}
if(num > limitLen){
num-=2;
}
sub = new String(bytes,0,num);
return sub;
}
public static void main(String[] args)
{
String target = "asier有法可依的要jdi在f我i的23423";
System.out.println(getSubString(target, 7));
System.out.println(getSubString(target, 8));
System.out.println(getSubString(target, 9));
}
}
分享到:
相关推荐
delphi 实现截取字符串中中文+英文混合截取,当字符串中包含中文和英文支付时,有时候会将一个中文截取1半,出现乱码。该demo能很好的解决该问题
impala的substr()和substring()函数是不支持中文的,创建一个udf解决impala sql中substr()函数截取中文字符串乱码的问题
winform的字符串转换乱码解决
可以截取中英文字符串,也可以含有字符,里面有好几个方法 有按字符个数截取 有按字节数来截取不会存在乱码
最近需要用到按字节数截取字符串。在网上找了很多方法。 Encoding.Default.GetString采用的Default Encoding.UTF8.GetBytes采用的是utf-8编码。这样当然是乱码。尤其出现中文时候。 对这类数据处理当然要用统一的...
但字符串只要出现中文字符,就有可能导致PHP substr中文乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位数不准确,substr()硬生生地将一个中文字符“锯”成两半,造成断开的字符会...
用汇编语言实现,输入一个字符串,然后检索数字,并去掉 用汇编语言实现,输入一个字符串,然后检索数字,并去掉 用汇编语言实现,输入一个字符串,然后检索数字,并去掉 用汇编语言实现,输入一个字符串,然后检索...
//gbk编码的字符串echo mb_substr($str, 0, 1, ‘gbk’); //输出 我 mb_substr方法比substr多一个参数,用来指定字符串编码。 utf-8编码截取示例 [code]$str = ‘我abc是谁’; //utf-8编码的字符串echo mb_substr...
把单元格的值赋值给字符串变量,再用msgbox函数现实字符串变量的值,竟然显示乱码
NDK开发之C语言调用Java构造方法、父类方法、返回中文字符串乱码问题案例详细解析。
自己有空时用java反射写的json转化工具,有不完善之处,多包涵
字符串乱码解决 gb2312 培训机构资料
本篇文章是对使用substr截取UTF-8中文字符串出现乱码的问题进行了详细的分析介绍,需要的朋友参考下
从DLL收读取字符串时遇到中文乱码,这里总结一下C#收取字符串时的处理。 C/C++字符串一般通过char* 或wchar_t*来表示,char*表示的是ANSCII字符串, wchar_t*表示Unicode字符串,Unicode字符串在C/C++中一个...
java代码,从16进制数直接转化成字符串(包括中文)简单好用
中英文字符串的切割边界的确定算法 >> 一些背景知识: 1. 一个汉字在c\c++的存储, 使用2个字节(char)存储; 2. 汉字存储的第一个char, 其值一定大于'~'(0111 1110=126),否则将导致识别歧义; 此处, 使用"单ASCII...
字符串截取函数,只限单字节字符使用(对于中文的截取时遇上奇数长度是会出现乱码,需另行处理),本函数可截取字符串指定范围内的字符。
本文实例讲述了php按字符无乱码截取中文的方法。分享给大家供大家参考。具体实现方法如下: <?php //$str 待截取的字符串 //$len 截取的字符个数 //$chars 已经截取的字符数 //$res 保存的字符串 //$chars 保存...
最近我正在做一个播放器,想让歌曲标题在任务栏上滚动显示,想了很久才又想到了这个字符串截取的办法,所以试了下,咦???乱码???怎么办呢???所以想了些办法让它不产生乱码,嘿嘿,并且成功啦,而且可以连续...