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-续二
该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...
随机推荐
- (转)heartbeat原理及部署
原文:http://yjy724.blog.51cto.com/10897133/1840794---------------------------------------------------h ...
- SpringBoot项目中获取applicationContext对象
ApplicationContext 对象是Spring开源框架的上下文对象实例,也就是我们常说的Spring容器,一般情况下我们是不用手动来管理它,而是由Spring框架自己来维护bean之间的关系 ...
- Oracle 锁机制
本文参考自:ORACLE锁机制 1.oracle是一个多用户使用的共享资源,当多个用户并发的操作同一数据行时,那么在oracle数据库中就会存在多个事务操作统一数据行的操作,如果不对并发操作进行控制, ...
- poj 1168 The Triangle
The Triangle Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 39169 Accepted: 23518 De ...
- nodejs中cookie、session的使用
因为http会话的无状态性,为了标记用户的登录状态,便出现了cookie.cookie分为很多种,有普通cookie.签名cookie.json cookie等,这里主要记录下在express应用中如 ...
- http所有请求头在Console中打印
1.目标:将http中的请求头全部打印在Console中 2.基本语句 //1.获得指定的头 String header = response.getHeader("User-Agert&q ...
- 初探Spring源码之Spring Bean的生命周期
写在前面的话: 学无止境,写博客纯粹是一种乐趣而已,把自己理解的东西分享出去,不意味全是对的,欢迎指正! Spring 容器初始化过程做了什么? AnnotationConfigApplication ...
- Java温故而知新(4)类String字符串
字符串是由字符组成,在Java中,字符串是对象,是描述字符的基本数据结构.String类可以用来保存一个字符串,本类是最终类,不允许继承: 1.String对象的创建 初始化 由于String对象特别 ...
- 将一个数据库中表的数据导入另一个数据库(DB2)
将一个数据库中的数据导入另一个数据库(DB2) 我这里举得例子是使用的DB2数据库,其他数据库思路也是这样啦! 1.从db2 数据库中将表中的数据导入本地的excel中 export to d:\my ...
- ajax接收flask传递的json数据
from flask import Flask, request import json app = Flask(__name__) @app.route('/') def func(): res = ...