1. 程式人生 > >截取字符串的代碼實現

截取字符串的代碼實現

stat 字節 system new builder toc color span urn

編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串。但是保證漢子不被截半個,例如輸入“人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 }

截取字符串的代碼實現