编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
GB2312、GBK、GB18030,CP936以及CNS11643都满足条件 -- 中文是占用2个字节的,英文是占用1一个字节 。因为中文转换为byte字节,随着编码的不同,转换的字节长度也会不通,如编码为UTF-8,一个中文字符串转换为byte占三个字节.
package com.suanfa;
import java.io.UnsupportedEncodingException;
public class CharactersSplit {
/**
* @param text 目标字符串
* @param length 截取长度
* @param encode 采用的编码方式
* @return
* @throws UnsupportedEncodingException
*/
public static String substring(String text, int length, String encode)
throws UnsupportedEncodingException {
if (text == null) {
return null;
}
StringBuilder sb = new StringBuilder();