import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* @version V1.0
* @ClassName StringUtil
* @Description 字符串解析类
* @Author Alan
* @Date 2018/12/27 19:11
*/
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 objToString(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();
} /**
* 根据某个字符对字符串进行分割
* @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. docker 部署vsftpd服务、验证及java ftp操作工具类

    docker部署vsftpd服务 新建ftp文件存储目录/home/ftp cd /home mkdir ftp 创建一个组,用于存放ftp用户 groupadd ftpgroups 创建ftp用户, ...

  2. Java字符串工具类

    import java.io.ByteArrayOutputStream;import java.io.UnsupportedEncodingException;import java.lang.re ...

  3. JAVA文件操作工具类(读、增、删除、复制)

    使用JAVA的JFinal框架 1.上传文件模型类UploadFile /** * Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com). * ...

  4. 自用java字符串工具类

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

  5. Java日期操作工具类

    /** * 格式化日期显示格式 * * @param sdate * 原始日期格式 s - 表示 "yyyy-mm-dd" 形式的日期的 String 对象 * @param fo ...

  6. Java字符串String类操作方法详细整理

    关于String类的基本操作,可分为以下几类: 1.基本操作方法 2.字符串比较 3.字符串与其他数据类型之间的转换 4.字符与字符串的查找 5.字符串的截取与拆分 6.字符串的替换与修改 我觉得在整 ...

  7. java HttpClient操作工具类

    maven: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId> ...

  8. Java文件操作工具类

    import com.foriseland.fjf.lang.DateUtil;import org.apache.commons.io.FileUtils;import org.slf4j.Logg ...

  9. Java文件操作工具类(复制、删除、重命名、创建路径)

    import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...

随机推荐

  1. [转]docx4j实现动态表格(模板式)

    原文地址:https://chendd.cn/information/viewInformation/other/257.a 除了前篇文章中讲到的编程式创建表格外,基于模板实现的列表表格也是非常常用或 ...

  2. cookie 设置报错 setcookie() expects parameter 3 to be integer, float given in...

    使用 setcookie 函数设置 cookie 报错,报错信息为: setcookie() expects parameter to be integer, float given in... 错误 ...

  3. revit 碰撞检测相关

    Revit二次开发:由房间获取房间的墙     之前用的方法是由房间边界构成的Solid,计算与该Solid相交的Element,然后判断是否为墙.相对来说这个方法比较通用,可以检索出房间的楼板.窗户 ...

  4. Java12新特性 -- 增强G1,自动返回未用堆内存给操作系统

    Java 12 中增强了 G1 垃圾收集器关于混合收集集合的处理策略,这节主要介绍在 Java 12 中同时也对 G1垃圾回收器进行了改进,使其能够在空闲时自动将 Java 堆内存返还给操作系统,这也 ...

  5. pauseable 库

    pauseable.js https://www.npmjs.com/package/pauseable Pauseable allows you to pause event emitters, t ...

  6. FileHelper-文件操作工具

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...

  7. Operation之条件和布尔操作符

    amb 当传入多个Observable到amb操作符时, 他将取第一个发生元素或产生事件的Observable, 然后只发出他的元素. 并且忽略其他的Observable let subject191 ...

  8. 【实用工具】.fbr格式免费播放器 FBR格式 Free FlashBack Player

    公司培训视频是FBR格式的,之前找了一个播放器还要注册码,太费劲,这个简单版能用就行. 播放器样式 播放效果 下载地址 链接:https://pan.baidu.com/s/1IGCgwfUBYJnG ...

  9. [转]10 Best GTK Themes for Ubuntu 18.04

    原文地址:https://omgfoss.com/10-best-gtk-themes-ubuntu-18-04/

  10. 【计算机视觉基础】IPM

    IPM code #if 0 void xyp2ipmp(cv::Mat& xyp, cv::Mat& ipmp, cv::Mat& xylim, Size& sz){ ...