zoukankan      html  css  js  c++  java
  • 根据字节数截取字符串

    问题描述:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,例如“人abc”4,应该截为“人ab”;输入“人abc们”6,应该截为“人abc”,而不是截为“人ab+们的半个”

    package com.wyl;
    /**
     * 截取字符串
     * @author wyl
     *
     */
    public class InterceptStr {
    
        /**
         * 判断字符是否为中文
         * @param c
         * @return
         */
        public boolean isChinese(char c){
            String sb = String.valueOf(c); //将字字符转化成字符串的形式
            return sb.getBytes().length == 1 ? false : true;
        }
        /**
         * 截取字符串
         * @param str 字符串
         * @param len 要截取的字节数
         * @return 截取的字符串
         */
        public String interceptStr(String str, int len){
            if(len==0 || str==null || str.equals("")){
                return "";
            }else if(len<0){
                System.out.println("参数len输入非法");
            }
            char[] chars = str.toCharArray(); //将字符串转换成字符数组,中文占用两个字符,英文占用一个字符
            StringBuilder sb = new StringBuilder();
            int count = 0; //用来截取当前截取的字符串的长度
            for(char cc:chars){
                if(count < len){
                    if(isChinese(cc)){
                        //如果要求截取的字符串长度只差一,但是接下来是中文字符
                        //则截取子串中不包括这个中文字符
                        if(count+1 == len){
                            return sb.toString();
                        }else{
                            count = count+2;
                            sb.append(cc);
                        }
                    }else{
                        count = count+1;
                        sb.append(cc);
                    }
                }else{
                    break;
                }
            }
            return sb.toString();
        }
        
        public static void main(String[] args) {
            InterceptStr interceptStr = new InterceptStr();
            String str = "abc王xb亚";
            String s = interceptStr.interceptStr(str, -1);
            System.out.println(s);
        }
    }
  • 相关阅读:
    python--执行文件的绝对路径
    python----slots属性安全类
    linux----LAMP之编译安装apache
    MySQL----alter table modify | change的不同
    数据库5
    数据库4
    数据库3
    数据库2
    数据库1
    MySQL exists 和 not exists 的用法
  • 原文地址:https://www.cnblogs.com/studyDetail/p/7228886.html
Copyright © 2011-2022 走看看