截取字符串的代码实现

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是保证汉子不被截半个,例如输入“人ABC” 4,应该截为“人AB”;输入“人ABC们DEF” 6,应该输出为“人ABC”,而不是“人ABC+半个们”。

分析:在String中英文占1个字节,中文占2个字节

 1 public class TruncateStr {
 2     private boolean isChinese(char cc){
 3         String str = String.valueOf(cc);  // 将字符转换成字符串
 4         return str.getBytes().length > 1;  // 将字符串转变为字节数组
 5     }
 6     private String truncateStr(String str, int len){
 7         if (str == null || str.equals("") || len == 0){
 8             return "";
 9         }
10         char [] charArr = str.toCharArray();  // 将字符串装换成字符数组
11         StringBuilder sb = new StringBuilder();
12         int count = 0;
13         for (char cc : charArr){  // 遍历字符数组
14             if (count < len){
15                 if (isChinese(cc)){
16                     if (count + 2 <= len){
17                         sb.append(cc);
18                         count += 2;
19                     }else {
20                         return sb.toString();
21                     }
22                 }else{
23                     sb.append(cc);
24                     count++;
25                 }
26             } else {
27                 break;
28             }
29         }
30         return sb.toString();
31     }
32     public static void main(String[] args){
33         TruncateStr ts = new TruncateStr();
34         System.out.println(ts.truncateStr("人ABC们DEF", 6));
35     }
36 }

 

posted on 2018-09-18 23:31  0820LL  阅读(329)  评论(0编辑  收藏  举报

导航