`

java 截取字符串(中英文混合)

阅读更多
private String subStr(String str, int max){
		int sum = 0;
		if(str!=null && str.length()> max){
			StringBuilder sb = new StringBuilder(max);
			for (int i = 0; i < str.length(); i++) {
				int c = str.charAt(i);
				if((c & 0xff00) != 0)
					sum+=2;
				else
					sum+=1;
				if(sum<=max)
					sb.append((char)c);
				else
					break;
			}
			return sb.append("...").toString();
		}else
			return str!=null ? str : "";
}



///////////////////////////////////////////////////////////////////////////////////////////////
public  class Test extends Date{
	/**
	 * 
	 */
	public static void main(String[] args) throws Exception{
		String str = "我a爱中华abc我爱传智def";
		String str1 = "我ABC汉";
		int num = trimGBK(str.getBytes("GBK"),6);
		System.out.println(str.substring(0,num) );
	}
	
	public static int  trimGBK(byte[] buf,int n){
		int num = 0;
		boolean bChineseFirstHalf = false;
		for(int i=0;i<n;i++)
		{
			if(buf[i]<0 && !bChineseFirstHalf){
				bChineseFirstHalf = true;
			}else{
				num++;
				bChineseFirstHalf = false;				
			}
		}
		return num;
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics