`
leign
  • 浏览: 169052 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

无乱码截取汉字字母数字混合字符串

    博客分类:
  • JAVA
F# 
阅读更多
无乱码截取汉字字母数字混合字符串
其实思路很简单,一个汉字占两个字节,其他英文字母占一个,故,只要截的地方不在那个汉字的‘中间’就行了。
思路:奖字符串字节化,转化为字节数组,统计到限制长度左右的汉字数以及其他字母数,最后再来取舍。

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));
	}
}
0
0
分享到:
评论
2 楼 leign 2009-12-09  
009dsa 写道
兄弟 我不明白你在干什么?

中文可以取半个吗?


可倒是可以,但可能出现乱码,可以找个例子从汉字中间截取,然后看结果
1 楼 009dsa 2009-12-09  
兄弟 我不明白你在干什么?

中文可以取半个吗?

相关推荐

    分享一段PHP制作的中文拼音首字母工具类

    这个工具类允许处理纯中文、英文和中英混合的字符串,返回字符串中每个汉字的拼音首字母。 首先,我们需要了解这个工具类的基本结构。它定义了一个名为`str2py`的类,包含一些私有成员变量和方法。其中,`_pinyins`...

    Excel百宝箱

    【取数字】:提取混合字符串中的数字 【去数字】:删除混合字符串中的数字 【取带点数字】:提取混合字符串中的带小数点数字 【取表达式】:提取混合字符串中的表达式 【计算表达式】:将表达式转换成值(包括从混合...

    Excel百宝箱9.0无限制破解版.rar

    【取数字】:提取混合字符串中的数字 【去数字】:删除混合字符串中的数字 【取带点数字】:提取混合字符串中的带小数点数字 【取表达式】:提取混合字符串中的表达式 【计算表达式】:将表达式转换成值(包括...

    Exce百宝箱——2012版本.rar

    【取数字】:提取混合字符串中的数字 【去数字】:删除混合字符串中的数字 【取带点数字】:提取混合字符串中的带小数点数字 【取表达式】:提取混合字符串中的表达式 【计算表达式】:将表达式转换成值(包括从混合...

    易语言 茶凉专用模块

    子程序 超级延迟, , 公开, 无资源占用的延时(无返回值) .参数 等待时间, 整数型 .子程序 超级延时, , 公开, 高精度延时,cpu占用低,窗口不卡死,一次最大可延时几年 (无返回值) .参数 延时间隔, 整数型, , 1000微秒 =...

Global site tag (gtag.js) - Google Analytics