码迷,mamicode.com
首页 > 其他好文 > 详细

截取字符串的代码实现

时间:2018-09-18 23:54:30      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:str   run   vat   app   字符数组   end   字符串   nes   turn   

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是保证汉子不被截半个,例如输入“人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 }

 

截取字符串的代码实现

标签:str   run   vat   app   字符数组   end   字符串   nes   turn   

原文地址:https://www.cnblogs.com/0820LL/p/9672124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!