截取字符串的代碼實現
阿新 • • 發佈:2018-09-19
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; 13for (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 returnsb.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 }
截取字符串的代碼實現