Java字符串工具类
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字符串工具类的更多相关文章
- 自用java字符串工具类
不断封装一些常用的字符串操作加到这个工具类里,不断积累: package com.netease.lede.qa.util; import java.text.ParseException; impo ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
- StringUtils 字符串工具类
package com.thinkgem.jeesite.common.utils; import java.io.File; import java.io.IOException; import j ...
- Java json工具类,jackson工具类,ObjectMapper工具类
Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...
- JAVA String 工具类
java StringUtil 字符串工具类 import java.util.ArrayList; import java.util.LinkedHashSet; import java.util. ...
- Java日期工具类,Java时间工具类,Java时间格式化
Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...
- Jsoup请求http或https返回json字符串工具类
Jsoup请求http或https返回json字符串工具类 所需要的jar包如下: jsoup-1.8.1.jar 依赖jar包如下: httpclient-4.5.4.jar; httpclient ...
- java日期工具类DateUtil-续一
上篇文章中,我为大家分享了下DateUtil第一版源码,但就如同文章中所说,我发现了还存在不完善的地方,所以我又做了优化和扩展. 更新日志: 1.修正当字符串日期风格为MM-dd或yyyy-MM时,若 ...
- java日期工具类DateUtil-续二
该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...
随机推荐
- 关于echar彩色柱状图颜色配置问题
在做配置页面的时候,有这样一个需求,用户可以选择配置是单色柱状图或者彩色的柱状图,并且颜色可以自定义的 思路:首先默认构建一个一个空的图表,然后根据记录上一次操作保存过来的参数重新组建option的值 ...
- [Unity3D]Shader编程之动态屏幕遮罩
转载 https://blog.csdn.net/u012741077/article/details/78425834 屏幕可视范围跟随目标物体移动,可修改可视范围大小,边缘渐变大小.以及遮罩颜色, ...
- 《图解http协议》之HTTPs学习笔记
对于IP协议,并不陌生.TP协议是TCP/IP协议簇中的核心协议,也是TCP/IP的载体.所有的TCP,UDP,ICMP及IGMP数据都以IP数据报格式传输.IP提供不可靠的,无连接的数据传送服务.I ...
- MacOS系统下的图形化工具
MacOS系统下的图形化工具 MacOS系统下安装了Git后,发现如果Git中有中文文档操作还是比较麻烦(需要输入中文的文件名).图形化对Git的操作还是相对于方便一些.所以准备找一个图形化的工具. ...
- 用.net 2.0(或.net 3.5)开发的程序在.net 4.0的环境中运行的解决方案
引用:.NET2.0程序集无法在.net 4.0 中运行的解决方案 1. 原来是在.net 2.0 (VS2008)的环境下的程序,通过升级到.net 4.0 (VS2013)导致程序运行不了 提示需 ...
- Android Studio修改程序包名
我也是在网上看到的,并且这个方法只能这么修改:cn.example.xxx修改为cn.example.yyy ,修改到根目录下... refactor---rename修改 然后clean,buil ...
- HDU 5691 ——Sitting in Line——————【状压动规】
Sitting in Line Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Other ...
- web渗透笔记
1.安装nmap记录:(1)下载:wget http://nmap.org/dist/nmap-6.46.tar.bz2(最新版)wget http://nmap.org/dist/nmap-6.00 ...
- 深入理解JavaScript系列(46):代码复用模式(推荐篇)
介绍 本文介绍的四种代码复用模式都是最佳实践,推荐大家在编程的过程中使用. 模式1:原型继承 原型继承是让父对象作为子对象的原型,从而达到继承的目的: function object(o) { fun ...
- [转]OData/WebApi
本文转自:https://github.com/OData/WebApi/tree/vNext OData Web API Introduction OData Web API (i.e., ASP. ...