import java.io.ByteArrayOutputStream;import java.io.UnsupportedEncodingException;import java.lang.reflect.Method;import java.net.URLDecoder;import java.net.URLEncoder;import java.util.*;import java.util.regex.Matcher;import java.util.regex.Pattern;

/*** @ClassName StringUtil* @Description 字符串解析类* @Author Alan* @Date 2017/12/27 19:11* @version V1.0*/public class StringUtil {

   /**    * 创建指定数量的随机字符串    *     * @param numberFlag    *            是否是数字    * @param length    * @return    */   public static String createRandom(boolean numberFlag, int length) {      String retStr = "";      String strTable = numberFlag ? "1234567890"            : "1234567890abcdefghijkmnpqrstuvwxyz";      int len = strTable.length();      boolean bDone = true;      do {         retStr = "";         int count = 0;         for (int i = 0; i < length; i++) {            double dblR = Math.random() * len;            int intR = (int) Math.floor(dblR);            char c = strTable.charAt(intR);            if (('0' <= c) && (c <= '9')) {               count++;            }            retStr += strTable.charAt(intR);         }         if (count >= 2) {            bDone = false;         }      } while (bDone);

      return retStr;   }

   /**    * 字节数组转换为字符串    * @return    */   public static String byteToStr(byte[] byt) throws UnsupportedEncodingException {      String strRead = new String(byt,"UTF-8");      return strRead;   }

   /**    * 将字节数组转换为十六进制字符串    * @param src    * @return    * @throws UnsupportedEncodingException    */   public static String bytes2Hex(byte[] src) throws UnsupportedEncodingException {      if (src == null || src.length <= 0) {         return null;      }

      char[] res = new char[src.length * 2]; // 每个byte对应两个字符      final char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };      for (int i = 0, j = 0; i < src.length; i++) {         res[j++] = hexDigits[src[i] >> 4 & 0x0f]; // 先存byte的高4位         res[j++] = hexDigits[src[i] & 0x0f]; // 再存byte的低4位      }

      return decode(new String(res),"UTF-8");   }

   /**    * 将16进制数字解码成字符串,适用于所有字符(包括中文)    */   public static String decode(String bytes, String charset) throws UnsupportedEncodingException {      ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length()/2);      final String  hexString="0123456789abcdef";      //将每2位16进制整数组装成一个字节      for(int i=0;i<bytes.length();i+=2)         baos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1))));      return new String(baos.toByteArray(), charset);   }   /**    * 字符串转换为字节数组    * @param str    * @return    */   public static byte[] strToByte(String str){      byte[] byBuffer = new byte[200];      String strInput=str;      byBuffer= strInput.getBytes();      return byBuffer;   }      /**    * 将URL编码转化为字符串    * @param str    * @return    * @throws UnsupportedEncodingException     */   public static String strToDecoder(String str) {      try {         return URLDecoder.decode(str, "UTF-8");      } catch (UnsupportedEncodingException e) {         e.printStackTrace();         return str;      }   }      /**    * 将字符串转化为URL编码    * @param str    * @return    * @throws UnsupportedEncodingException    */   public static String strToEncoder(String str) throws UnsupportedEncodingException {      return URLEncoder.encode(str,  "UTF-8");   }      /**    * 去掉字符串中的空格、回车、换行符、制表符    * @param str    * @return    */   public static String replaceBlank(String str) {        String dest = "";        if (str!=null) {            Pattern p = Pattern.compile("\\s*|\t|\r|\n|");            Matcher m = p.matcher(str);            dest = m.replaceAll("");            // 将ASCII的值为160的替换为空字符串            dest = dest.replace(backStr(160), "");        }        return dest;    }   /**    * 去掉字符串中的空格、回车、换行符、制表符、斜杠、点、冒号    * @param str    * @return    */    public static String replaceBlanks(String str){      str = replaceBlank(str);      String dest = "";      if (str!=null) {         Pattern p = Pattern.compile("/|\\.|\\:|");         Matcher m = p.matcher(str);         dest = m.replaceAll("");      }      return dest;   }    /**     * 字符转ASC     *      * @param st     * @return     */    public static int getAsc(String st) {        byte[] gc = st.getBytes();        int ascNum = (int) gc[0];        return ascNum;    }    /**     * ASC转字符     *      * @param backnum     * @return     */    public static char backchar(int backnum) {        char strChar = (char) backnum;        return strChar;    }        /**     * ASC转字符串     * @param     */    public static String backStr(int backnum) {        char strChar = (char) backnum;        return String.valueOf(strChar);    }      /**    * 将Object转换为String    * @param o    * @return    */   public static String isNull(Object o){      if (o==null) {         return "";      }      return o.toString();   }   /**    * 判断对象是否为空    * @param o    * @return    */   public static boolean isEmpty(Object o){      boolean result = false;      if(o == null){         result = true;      } else {         if("".equals(o.toString())){            result = true;         }      }      return result;   }   /***    * encode by Base64    */   public static String encodeBase64(byte[]input) throws Exception{      Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");      Method mainMethod= clazz.getMethod("encode", byte[].class);      mainMethod.setAccessible(true);      Object retObj=mainMethod.invoke(null, new Object[]{input});      return (String)retObj;   }   /***    * decode by Base64    */   public static byte[] decodeBase64(String input) throws Exception{      Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");      Method mainMethod= clazz.getMethod("decode", String.class);      mainMethod.setAccessible(true);      Object retObj=mainMethod.invoke(null, input);      return (byte[])retObj;   }   public static byte[] hexStringToBytes(String hexString) {      if (hexString == null || hexString.equals("")) {         return null;      }      hexString = hexString.toUpperCase();      int length = hexString.length() / 2;      char[] hexChars = hexString.toCharArray();      byte[] d = new byte[length];      for (int i = 0; i < length; i++) {         int pos = i * 2;         d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));      }      return d;   }   private static byte charToByte(char c) {      return (byte) "0123456789ABCDEF".indexOf(c);   }   //将指定byte数组以16进制的形式打印到控制台   public static void printHexString( byte[] b) {      for (int i = 0; i < b.length; i++) {         String hex = Integer.toHexString(b[i] & 0xFF);         if (hex.length() == 1) {            hex = '0' + hex;         }         System.out.print(hex.toUpperCase() );      }   }   /**    * 将list集合转化为like查询语句    * @param names    * @return    */   public static String listToLikeString (List<String> names) {      StringBuffer sb = new StringBuffer();      sb.append("(");      for(int i=0; i<names.size(); i++){         sb.append("'");         sb.append(names.get(i));         sb.append("'");         if(i != names.size() - 1){            sb.append(",");         }      }      sb.append(")");      return sb.toString();   }   /**    * 对Json字符串进行排序    * @param str    * @return    */   public static String sortString (String str) {      try {         Map<Object, Object> map = FastJsonUtil.getMapJSON(str);         TreeMap treeMap = new TreeMap(map);         return FastJsonUtil.parseToJSON(treeMap);      } catch (Exception e) {         return str;      }   }   /**    * 根据某个字符对字符串进行分割    * @param str    * @return    */   public static String[] spilt(String str, String reg){      str = replaceBlank(str);      String[] spilt = str.split(reg);      return spilt;   }   /**    * 根据逗号进行分割    * @param str    * @return    */   public static String[] spilt(String str){      return spilt(str,",");   }   public static void main(String[] args) {      String s = "http://192.168.2.26:4000/";      s = replaceBlanks(s);      System.out.println(s);   }} 

Java字符串工具类的更多相关文章

  1. 自用java字符串工具类

    不断封装一些常用的字符串操作加到这个工具类里,不断积累: package com.netease.lede.qa.util; import java.text.ParseException; impo ...

  2. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  3. StringUtils 字符串工具类

    package com.thinkgem.jeesite.common.utils; import java.io.File; import java.io.IOException; import j ...

  4. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  5. JAVA String 工具类

    java StringUtil 字符串工具类 import java.util.ArrayList; import java.util.LinkedHashSet; import java.util. ...

  6. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  7. Jsoup请求http或https返回json字符串工具类

    Jsoup请求http或https返回json字符串工具类 所需要的jar包如下: jsoup-1.8.1.jar 依赖jar包如下: httpclient-4.5.4.jar; httpclient ...

  8. java日期工具类DateUtil-续一

    上篇文章中,我为大家分享了下DateUtil第一版源码,但就如同文章中所说,我发现了还存在不完善的地方,所以我又做了优化和扩展. 更新日志: 1.修正当字符串日期风格为MM-dd或yyyy-MM时,若 ...

  9. java日期工具类DateUtil-续二

    该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...

随机推荐

  1. Java常见的错误种类

    数组中的错误: 越界: java.lang.ArrayIndexOutOfBoundsException 数组越界,如果声明 了5个元素的数组,但是在取值的时候用到了索引5,那就越界了 空指针:jav ...

  2. Android使用7牛云存储

    第一次使用这个云存储,话说7牛云存储大有来头!区别于国内外其他云存储,七牛自行研发的全分布式架构解决了其他云存储单一数据中心架构可能存在的风险,同时首创双向加速特性对数据上传下载均加速,使得数据访问速 ...

  3. hibernate 学习笔记2

    1.Criteria查询接口适用于组合多个限制条件来搜索一个查询集. 要使用Criteria,需要遵循以下步骤: *创建查询接口: Criteria criteria=session.createCr ...

  4. poj 3748 位操作

    位操作 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8856   Accepted: 3535 Description 假 ...

  5. python-爬虫之requests模块介绍(登陆github)

    介绍 使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) 注意 requests库发送请求将网页内容下载下来以后 ...

  6. Git - 远程库的创建与认证

    前些日子因为某些原因,需要在windows上创建一个remote仓库. 由于实在是太麻烦而且时间紧急,就直接用了gitstack. 发现这个东西居然需要付费,未认证时只能创建两个用户. 其实对我而言足 ...

  7. package.json中^符号和~符号前缀的区别

          开发中经常会使用npm install 安装依赖包,经常会看到^符号和~符号,现将二者的区别总结如下:     版本号 x.y.z : z :表示一些小的bugfix, 更改z的号, y ...

  8. crontab 设置服务器定期执行备份工作

    基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...

  9. java 的数据库操作--JDBC

    一.java与数据库的交互 1.jdbc:java data base connectivity,java数据库连接.java的JDBC操作主要通过操作两个类进行连接操作:Connection 和 S ...

  10. Python基础学习总结(三)

    4.if语句 If语句可以检查判定当前条件,并执行相应措施. if a in A: if a 条件: 执行命令1 4 else: 执行命令2 if判断条件还可以简写 if x: print('True ...