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.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字符串操作工具类的更多相关文章
- docker 部署vsftpd服务、验证及java ftp操作工具类
docker部署vsftpd服务 新建ftp文件存储目录/home/ftp cd /home mkdir ftp 创建一个组,用于存放ftp用户 groupadd ftpgroups 创建ftp用户, ...
- Java字符串工具类
import java.io.ByteArrayOutputStream;import java.io.UnsupportedEncodingException;import java.lang.re ...
- JAVA文件操作工具类(读、增、删除、复制)
使用JAVA的JFinal框架 1.上传文件模型类UploadFile /** * Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com). * ...
- 自用java字符串工具类
不断封装一些常用的字符串操作加到这个工具类里,不断积累: package com.netease.lede.qa.util; import java.text.ParseException; impo ...
- Java日期操作工具类
/** * 格式化日期显示格式 * * @param sdate * 原始日期格式 s - 表示 "yyyy-mm-dd" 形式的日期的 String 对象 * @param fo ...
- Java字符串String类操作方法详细整理
关于String类的基本操作,可分为以下几类: 1.基本操作方法 2.字符串比较 3.字符串与其他数据类型之间的转换 4.字符与字符串的查找 5.字符串的截取与拆分 6.字符串的替换与修改 我觉得在整 ...
- java HttpClient操作工具类
maven: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId> ...
- Java文件操作工具类
import com.foriseland.fjf.lang.DateUtil;import org.apache.commons.io.FileUtils;import org.slf4j.Logg ...
- Java文件操作工具类(复制、删除、重命名、创建路径)
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...
随机推荐
- TortoiseSVN is locked in another working copy
TortoiseSVN提交报错 TortoiseSVN is locked in another working copy原因:可能是因为打开了多个commit会话,然后又去修改了提交文件的内容,导致 ...
- cmd find命令用法
Windows命令行(cmd)下快速查找文件(类似Linux下find命令) 2015年04月11日 10:50:43 开水 阅读数 62240 标签: 命令行cmdwindows 更多 个人分类: ...
- Kafka集群管理工具kafka-manager
一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...
- Eclipse检出原MyEclipse项目后 javax.servlet.http相关类都报错【我,体现着一类jar包问题的处理方法】
用Eclipse检出原来为myEclipse搭建的一个项目,检出后,所有关于httpservlet的类都报异常,说有没实现的方法? 但这个项目之前人家用MyEclipse运行都是没有问题的, 按住CT ...
- Spring Cloud(一)简单的微服务集成Eureka
1 Spring Cloud简介 1.1 简介 Spring Cloud项目的官方网址:https://projects.spring.io/spring-clo ...
- layui flow loading占位图实现方法
如果流图片要加载失败, 就会显示找不到图片的裂痕 代码如下: <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- VSCode调试data层时自身的一个bug
使用VSCode在pytorch下进行调试有的时候会遇到下面这个错误: E00037.: Exception escaped from start_client Traceback (most rec ...
- Python - Django - 中间件 process_exception
process_exception(self, request, exception) 函数有两个参数,exception 是视图函数异常产生的 Exception 对象 process_except ...
- ASP.Net validator
<asp:TextBox ID="txtTransitDays" runat="server"></asp:TextBox> <a ...
- 消息中间件 kafka rabbitmq 选型差异
https://www.zhihu.com/question/43557507 https://baijiahao.baidu.com/s?id=1610644333184173190&wfr ...