• 截取字符串指定字节长度


    项目中用到的是ORACLE数据库,字符编码是GBK,所以在数据库中一个汉字占用2个字节,如果是UTF-8编码,则一个汉字占用3个字节。

    也就说如果字段定义为VARCHAR2(100),则最多存储50个汉字,如果是UTF-8编码,则最多存储33个汉字。

    项目中有个需求是到处文件,要求:每个字段按一定的长度到处,如果数据不足则后补空格,如果超过指定长度则截取。

    import java.io.UnsupportedEncodingException;
    import java.util.Arrays;
    
    import org.apache.commons.lang.StringUtils;
    
    public class OpeBytes {
    
        /**
        * 根据制定字节长度截取字符串,不足后面补空格
        * @param aim 目标字符串
        * @param length 指定字节长度
        * @return 新的字符串
        */
        public static String getNewStr(String aim, int length) {
           byte[] bytes;
           String string = "";
           try {
               if (StringUtils.isNotBlank(aim)) {
                  bytes = aim.getBytes("GBK");
                  int temLength = bytes.length;
                  if (temLength > length) {
                      byte[] copyOf = Arrays.copyOf(bytes, length);
                      string = new String(copyOf, "GBK");
                  } else {
                      int i = length - temLength;
                      if (i > 0) {
                         aim += String.format("%-" + i + "s", " ");
                      }
                      string = aim;
                  }
               } else {
                  aim = "";
                  aim += String.format("%-" + length + "s", " ");
                  string = aim;
               }
           } catch (UnsupportedEncodingException e) {
               System.out.println("获取字符串字节异常:" + e);
           }
           return string;
        }
    }
  • 相关阅读:
    day13 python学习 迭代器,生成器
    day12 python学习 装饰器
    day10 python学习 函数的嵌套命名空间作用域 三元运算 位置参数 默认参数 动态参数
    day11 python学习 函数的建立,返回值,参数
    day7 python学习
    2易错概念和点
    day8 python学习 集合 深浅拷贝
    1.易错概念和点
    python_基础算法
    css基础示例代码
  • 原文地址:https://www.cnblogs.com/whx20100101/p/10570371.html
Copyright © 2020-2023  润新知