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. oracle10g获取Date类型字段无时分秒解决办法!

    一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期.时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别. 最近使用 ...

  2. 设计模式之第7章-外观模式(Java实现)

    设计模式之第7章-外观模式(Java实现) “鱼哥,知道怎么把大象装进冰箱里面么?”(作者按:这么简单的问题还想考我,早了几百年吧.)“把大象装进冰箱里,一共需要三步:第一步,把冰箱门打开:第二步,把 ...

  3. Python基础(3) - 数据类型:3列表类型

    Python 列表是序列对象,可包含任意的Python数据信息,如字符串.数字.列表.元组等.列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加.修改.删除等操作.列表用[]包括起来的. 列 ...

  4. iOS 模拟器截屏快捷键

    iOS 模拟器截屏快捷键: cmd+S

  5. bzoj 4942: [Noi2017]整数

    Description Solution 加法减法可以分开考虑,如果只有加法的话,直接暴力进位复杂度是对的 询问的时候就是把两个二进制数做差,判断第 \(k\) 位的取值 实际上我们只需要判断 \(1 ...

  6. 深入理解JavaScript系列(39):设计模式之适配器模式

    介绍 适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作.速成包装 ...

  7. 阿里云服务器docker搞定镜像

    docker的安装可以看前面的文章 这里我的docker已经安装完成了,该搞镜像了:这里的镜像用的是我以前自己搞的,虽然镜像有点大,但是胜在自己搞的,熟悉(熟悉不熟悉鬼知道) 我的镜像放在了阿里云容器 ...

  8. 虚拟机非正常关闭,里面的服务器重启报错:Error, some other host already uses address

    解决办法: vi /etc/sysconfig/network-scripts/ifup-eth ###########注销下面的三行内容############ # if ! /sbin/arpin ...

  9. FW:Software Testing

    Software Testing Testing with a Purpose Software testing is performed to verify that the completed s ...

  10. PHP学习9——MySQL数据库

    主要内容: MySQL的启动 MySQL数据库操作 数据库表设计 创建和查看表 修改表结构 MySQL语句操作 数据库备份与恢复 PHP操作MySQL数据库 面向对象的数据库操作 MySQL数据库是目 ...