无乱码截取汉字字母数字混合字符串
其实思路很简单,一个汉字占两个字节,其他英文字母占一个,故,只要截的地方不在那个汉字的‘中间’就行了。
思路:奖字符串字节化,转化为字节数组,统计到限制长度左右的汉字数以及其他字母数,最后再来取舍。
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));
}
}
分享到:
相关推荐
这个工具类允许处理纯中文、英文和中英混合的字符串,返回字符串中每个汉字的拼音首字母。 首先,我们需要了解这个工具类的基本结构。它定义了一个名为`str2py`的类,包含一些私有成员变量和方法。其中,`_pinyins`...
【取数字】:提取混合字符串中的数字 【去数字】:删除混合字符串中的数字 【取带点数字】:提取混合字符串中的带小数点数字 【取表达式】:提取混合字符串中的表达式 【计算表达式】:将表达式转换成值(包括从混合...
【取数字】:提取混合字符串中的数字 【去数字】:删除混合字符串中的数字 【取带点数字】:提取混合字符串中的带小数点数字 【取表达式】:提取混合字符串中的表达式 【计算表达式】:将表达式转换成值(包括...
【取数字】:提取混合字符串中的数字 【去数字】:删除混合字符串中的数字 【取带点数字】:提取混合字符串中的带小数点数字 【取表达式】:提取混合字符串中的表达式 【计算表达式】:将表达式转换成值(包括从混合...
子程序 超级延迟, , 公开, 无资源占用的延时(无返回值) .参数 等待时间, 整数型 .子程序 超级延时, , 公开, 高精度延时,cpu占用低,窗口不卡死,一次最大可延时几年 (无返回值) .参数 延时间隔, 整数型, , 1000微秒 =...