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-续二
该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...
随机推荐
- Python+Selenium(webdriver常用API)
总结了Python+selenium常用的一些方法函数,以后有新增再随时更新: 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: ...
- 【C语言】-指针
本文目录 直接引用 一.什么是指针? 二.指针的定义 三.指针的初始化 四.指针运算符 五.指针的用途举例 六.关于指针的疑问 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发 ...
- Unity热更方案汇总
http://www.manew.com/thread-114496-1-1.html 谈到目前的代码热更方案:没什么特别的要求 <ignore_js_op> toLua(效 ...
- Fatal error: Call-time pass-by-reference has been removed in *****.php on line 18
问题描述:最近刚刚将php升级到5.4.13,但是打开一个页面的时候出现报错:Fatal error: Call-time pass-by-reference has been removed in ...
- 批量查找ip地址归属地脚本
#!/bin/bash ip_list=`cat $1` for i in $ip_listdocurl http://www.ip.cn/index.php?ip=$idoneexit 0
- Gradle 学习(一)
引入插件 apply plugin: 'java' apply plugin: 'war' apply plugin: 'jetty' 如果希望使用jar来启动项目, 可以这样修改项目和插件属性. a ...
- 一个Json、数组、Dictionary转换和数组对比的C#实例
最近做了一个程序,里面一段代码用到Json.数组.Dictionary转换和数组对比的一些知识,虽然在实际碰到类似问题时候有更好的方法,但这就当是一次基础知识的回顾,现在分享一下. 先介绍下要实现的业 ...
- 流畅的python和cookbook学习笔记(九)
1.减少可调用对象的参数个数,使用functools.partial冻结参数 使用functools.partial(),可以固定一个或者多个值,减少调用参数. >>> def sp ...
- SQLSTATE[HY000] [2002] No such file or directory in
这个错误将数据库配置信息的localhost改成127.0.0.1就行了
- js中map和python中的map
js 中的map: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow( ...