根据指定字符长度截取字符串(包含中英文)
2017-09-09 00:59
579 查看
public class SplitStr {
public static void main(String[] args) {
SplitStr ss = new SplitStr();
String str = "HELLO中国";
System.out.println(ss.truncateStr(str,6));
}
private String truncateStr(String str, int len) {
if(str==null || str.equals("") || len==0)
{
return "";
}
char[] charArr = str.toCharArray();
int count = 0;
StringBuilder sb = new StringBuilder("");
for(char c :charArr)
{
if(count<len)
{
if(isChinese(c))
{
if(count+1==len)
{
return sb.toString();
}
else
{
count = count+2;
sb.append(c);
}
}
else
{
count = count +1;
sb.append(c);
}
}
else
{
break;
}
}
return sb.toString();
}
private boolean isChinese(char c) {
String s = String.valueOf(c);//字符类型转化成字符串
return s.getBytes().length >1 ? true:false;
}
public static void main(String[] args) {
SplitStr ss = new SplitStr();
String str = "HELLO中国";
System.out.println(ss.truncateStr(str,6));
}
private String truncateStr(String str, int len) {
if(str==null || str.equals("") || len==0)
{
return "";
}
char[] charArr = str.toCharArray();
int count = 0;
StringBuilder sb = new StringBuilder("");
for(char c :charArr)
{
if(count<len)
{
if(isChinese(c))
{
if(count+1==len)
{
return sb.toString();
}
else
{
count = count+2;
sb.append(c);
}
}
else
{
count = count +1;
sb.append(c);
}
}
else
{
break;
}
}
return sb.toString();
}
private boolean isChinese(char c) {
String s = String.valueOf(c);//字符类型转化成字符串
return s.getBytes().length >1 ? true:false;
}
相关文章推荐
- 包含中英文字符的字符串截取指定数目的子串
- 从一个包含汉字和其他字符的字符串中截取指定字节长度的字符串,不可以出现中文乱码
- Oracle截取字符串去掉字段末尾指定长度的字符
- 用C#截取指定长度的中英文混合字符串
- 截断字符串,取指定长度字符(中英文通用)
- 用C#截取指定长度的中英文混合字符串 改进版--转载
- Oracle截取字符串去掉字段末尾指定长度的字符
- 用C#截取指定长度的中英文混合字符串的最终算法
- lua 含中文的字符串处理--分离字符、计算字符数、截取指定长度
- 根据给定的字符生成指定长度的字符串
- asp.net指定长度截取字段省略(中英文混合字符串)
- 用C#截取指定长度的中英文混合字符串
- 用C#截取指定长度的中英文混合字符串(转)
- C#区分中英文按照指定长度截取字符串的方法
- C#截取指定长度中英文字符串方法 (收藏)
- 【转载】C# 字符串截取指定长度的中文字符--精点
- c#中英文混合字符串截取指定长度
- 截取指定的字符长度(其中字符串中有中文,如果有半个中文则去掉)
- 求中英文混合字符串长度,中英文混合字符串截取(汉字2个字节,字母数字等1个字节),字符转ASCII码,ASCII码转字符
- C#截取指定长度中英文字符串方法