截取出现汉字问题

package corejava;

/**
 * (机能概要描述)
 * 
 * <pre>
 *  [变更履历]
 *  09.07.20.NICKLE NET 初版
 * </pre>
 * 
 * @author NICKLE)王福文
 */
public class Test {
	/**
	 * 第二个就是编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
	 * 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,
	 * 应该输出为“我ABC”而不是“我ABC+汉的半个”。
	 */

	public void subString(String str,int ind){
		
		byte[] bs = str.getBytes();
		
		String result = "";
		
		int count = 0;
		
		if(str.length() > 0 && ind != 0 ){
			//计数器
			for(int i = 0 ; i <= ind - 1;i++){
				if(bs[i]<0) {
					count++;
				}
			}
			System.out.println("count: " + count);
			
			//截取一般汉字时必定为奇数,并且为负数。截取字符前进一。
			if(bs[ind] < 0 && (count%2) != 0 ){
				String temp = new String( bs,0,ind-1);
				System.out.println("截取后的:" + temp);
			}else{
				String temp = new String( bs,0,ind);
				System.out.println("正好不用截取的:" + temp);
			}
		}
	}
	
	public static void main(String[] args){
		Test str =  new Test();
		str.subString("我是AABBCC不告诉你",12);
	}
}

你可能感兴趣的:(编程,.net)