華爲機試練習---按字節數截取字符串

package interview;

import java.io.UnsupportedEncodingException;
import java.util.Scanner;

/**
 * 輸入一個字符串和字節數,按照字節數截取字符串。漢字兩個字節,不能拆開
 * 如:
 * 輸入:我JAVA是ABC 6
 * 輸出:我JAVA
 * 輸入:我JAVA是ABC 7
 * 輸出:我JAVA
 * @author USER
 *
 */
public class CutStringByBytes {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String string = in.next();
		int len = in.nextInt();
		try {
			cutString(string,len);
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private static void cutString(String str, int len) throws UnsupportedEncodingException {
		
		StringBuffer sb = new StringBuffer();
		int count = 0;//存儲字節數
		if (len >0 && len <= str.getBytes().length) {
			for (int i = 0; i < str.length(); i++) {
				int curSize = String.valueOf(str.charAt(i)).getBytes().length;
				if (curSize > 1) {
					count += 2;
				}else {
					count++;
				}
				if (count > len) {
					break;
				}
				sb.append(str.charAt(i));
			}
		}
		System.out.println(sb.toString());
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章