给你参考下我写的:- public static String cutString(String str, int len) {
-
- //定义一个子串,用于存储最后结果。
- String substr = null;
-
- if(str != null) {
- byte[] by = null;
- //使用GBK码表将源字符串编码成byte序列,并存储到数组by中。需要捕捉异常
- try {
- by = str.getBytes("GBK");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
-
- //如果需要截取的字节数大于等于源字符串的字节数,直接返回整个源字符串
- if(len >= by.length)
- return str;
-
- //按需要截取的字节数截取一段字符串
- substr = new String(by, 0, len);
-
- //如果该字符串不是源字符串的子串,说明出现了半个中文的情况,舍弃最后一个字节
- if(!str.contains(substr))
- substr = new String(by, 0, len-1);
- }
- return substr;
- }
复制代码
|