天天看點

java截取含有漢字的字元串

package com.test;



public class Str {


	public static void main(String[] args) {
		String str1 = "我ABC";
		String str2 = "我ABC漢DEF";
		System.out.println(new Str().sub(str1, 4));
		System.out.println(new Str().sub(str2, 6));
	}
	public String sub(String str,int len){ 
		int j=0;  //标記字元串中漢字的個數
		byte[] b1 = str.getBytes();
		for(int i = 0;i<str.length();){
			char c = str.charAt(i);
			if(String.valueOf(c).getBytes().length==2){
				i+=2;
				j++;
			}else{
				i++;
			}
			if(i<len){
				continue;
			}
			else {
				return new String(b1, 0, len-j+1);
			}
			
		}
		return null;
	}
}