zoukankan      html  css  js  c++  java
  • 截取字符串的代码实现

    编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是保证汉子不被截半个,例如输入“人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 }
  • 相关阅读:
    idea控制台乱码问题解决
    部署springboot项目到云服务器的两种方式(jar+war)
    case...when...then....(else...)....end的使用小案例
    多线程学习(二)
    多线程学习(一)
    Swagger学习笔记
    Docker进阶篇
    Docker入门基础篇
    Markdown语法学习(推荐使用Typora编辑器)
    git(六)——IDEA中使用git
  • 原文地址:https://www.cnblogs.com/0820LL/p/9672124.html
Copyright © 2011-2022 走看看