> 文章列表 > java处理字符串工具类

java处理字符串工具类

java处理字符串工具类

package com.joinsoft.service.utils;import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;/*** 处理字符串的工具类。*/public class StringUtils {/**** 对string 进行trim,如果值为null返回"",其他情况string.trim()。* @param str    待处理的字符串* @return** @author admin* @since 2014年8月14日下午2:17:35*/public static String clean(String str) {return org.apache.commons.lang3.StringUtils.trimToEmpty(str);}/**** 返回str.trim(),如果值为null或string.trim()为"",则返回指定的默认值。* @param str* @param defaultValue 默认值* @return** @author tyr* @since 2014-9-22下午4:19:27*/public static String cleanDefault(String str, int defaultValue) {if (isEmpty(clean(str))) {return String.valueOf(defaultValue);}else {return clean(str);}}public static String cleanDefault(String str, String defaultValue) {if (isEmpty(clean(str))) {return String.valueOf(defaultValue);}else {return clean(str);}}/**** 判断字符串是否为空。* <p>严格判断字符串是否为空。为空的标准  str==null or str.length()==0</p>* @param str* @return** @author admin* @since 2014年8月14日下午2:18:52*/public static boolean isEmpty(String str) {return org.apache.commons.lang3.StringUtils.isEmpty(str);}/**** 判断字符串是否不为空。* <p>严格判断字符串是否不为空。不为空的标准  str!=null or str.length()!=0</p>* @param str* @return** @author admin* @since 2014年8月14日下午2:18:52*/public static boolean isNotEmpty(String str) {if(equals(str,"null")){return false;}return !isEmpty(str);}/*** 字符串比对方法,两个比较的字符串都能为空,不会报空指针异常* @param str1* @param str2* @return*/public static boolean equals(String str1,String str2){return org.apache.commons.lang3.StringUtils.equals(str1,str2);}/**** 判断字符串是否为空。* <p>宽松判断字符串是否为空。为空的标准  [str==null or str.length()==0 && 空格]</p>* @param str* @return** @author admin* @since 2014年8月14日下午2:19:32*/public static boolean isBlank(String str) {if("null".equals(str)){//add by zfxreturn true;}return org.apache.commons.lang3.StringUtils.isBlank(str);}/**** 字符串转换为大写形式。* @param str* @return** @author admin* @since 2014年8月14日下午2:21:24*/public static String upperCase(String str) {return org.apache.commons.lang3.StringUtils.upperCase(str);}/**** 字符串转换为小写形式。* @param str* @return** @author admin* @since 2014年8月14日下午2:21:47*/public static String lowerCase(String str) {return org.apache.commons.lang3.StringUtils.lowerCase(str);}/****  对字符串进行反转。* @param str* @return** @author admin* @since 2014年8月14日下午2:22:09*/public static String reverse(String str) {return org.apache.commons.lang3.StringUtils.reverse(str);}/**** 在字符串中移除指定的字符串  (eg: remove("abc","c")-->"ab")。* @param str      待处理的字符串* @param remove   需要移除的字符串* @return         处理后的字符串** @author admin* @since 2014年8月14日下午2:22:30*/public static String remove(String str, String remove) {return org.apache.commons.lang3.StringUtils.remove(str, remove);}/**** 判断字符串每位是否为数值 [eg:"abc"-->false "a13"-->false "123"-->true "12.11"-->false]。* @param str* @return** @author* @since 2014年8月14日下午2:23:32*/public static boolean isNumeric(String str) {return org.apache.commons.lang3.StringUtils.isNumeric(str);}/**** 用指定的字符串补齐足够的长度。* <p>%方法详述(简单方法可不必)%</p>* @param str       需要补齐的字符串* @param addstr    补齐字符* @param lenstr    补齐长度* @return** @author admin* @since 2014年8月14日下午2:24:59*/public static String addZero(String str,String addstr, int lenstr) {String value = clean(str);while (value.length() < lenstr) {value = addstr + value;}return value;}/**** 截取字符串左边的零。* @param teststr* @return** @author admin* @since 2014年8月14日下午2:25:49*/public static String removeZero(String teststr) {String str = clean(teststr);if ("".equals(str)) {return "";}String tmpStr = str.substring(0, 1);while ("0".equals(tmpStr) && str.length() > 0) {str = str.substring(1, str.length());tmpStr = str.substring(0, 1);}return str;}/**** 将str用多个分隔符进行切分。* <p>将str用多个分隔符进行切分*    示例:StringTokenizerUtils.split("1,2;3 4"," ,;")*    返回: ["1","2","3","4"]* </p>* @param str* @param seperators* @return** @author admin* @since 2014年8月14日下午2:26:21*/public static String[] split(String str, String seperators) {StringTokenizer tokenlizer = new StringTokenizer(str, seperators);List<Object> result = new ArrayList<Object>();while (tokenlizer.hasMoreElements()) {Object s = tokenlizer.nextElement();result.add(s);}return (String[]) result.toArray(new String[result.size()]);}/**** 输入一个字符串,判断是否为空,如果为空设定默认值。* <p>*     输入一个字符串,判断是否为空(为空的标准 str==null or str.length()==0 or 字符串为空格* </p>* @param str* @param defaultstr* @return** @author admin* @since 2014年8月14日下午2:28:09*/public static String defaultIfBlank(String str, String defaultstr) {return org.apache.commons.lang3.StringUtils.defaultIfBlank(str,defaultstr);}/**** 把数组中的值 转换成sql in需要的形式 ["a","b"]--->('a','b')。* @param str* @return** @author* @since 2014年8月14日下午2:38:40*/public static String toInString(String[] str){StringBuffer buffer=new StringBuffer();buffer.append("(");for (int i = 0; i < str.length-1; i++) {buffer.append("'"+str[i]+"',");}buffer.append("'"+str[str.length-1]+"'");buffer.append(")");return buffer.toString();}/**** 功能: 对字符串进行前置补0。* <p>%方法详述(简单方法可不必)%</p>* @param str* @param lenstr* @return** @author* @since 2014-9-5下午4:25:25*/public static String addZero(String str, int lenstr) {String value = clean(str);while (value.length() < lenstr) {value = "0" + value;}return value;}/**** 功能: 返回不以科学计算法为显示的double值** @return** 作者:仝玉锐*/public static String getFomartDouble(double value) {double out = 0.00;DecimalFormat df = new DecimalFormat("0.00");if (StringUtils.isEmpty(value + "")) {out = 0d;} else {out = new Double(value);}String str = df.format(out);return str;}public static String getFomartDouble(String str) {double out = 0.00;if(StringUtils.isEmpty(str)){out = 0d;} else {out = new Double(Double.parseDouble(str));}return  getFomartDouble(out);}/*** 通过数组拼接数据项当做条件进行查询,* 返回值  in('','');* @param dataString 条件* @param columnName 字段名称* @return** @author 杨慕孔* @since 2018年8月17日上午9:40:58*/public static String getInCondition(String[] dataString,String columnName){String str = "";if(dataString == null || columnName == null ||"".equals(columnName)) return null;if(dataString != null && dataString.length>0){str = columnName + " in(";for (int i = 0; i < dataString.length; i++) {str +="'"+dataString[i]+"',";}str = str.substring(0,str.length()-1);str += ")";}return str;}/**** FUNCTION: 去掉最后一个字符** @param** @version: 2012-12-14* **/public static String removeLastStr(String sourceStr){if(!StringUtils.isBlank(sourceStr)){sourceStr = sourceStr.substring(0, sourceStr.length()-1);return sourceStr;}return null;}/*** 将数组转化为list** @param ids 被转的字符串* @param splitStr 分隔符* @return** @author 高东朋* @since 2018年9月27日下午2:29:05*/public static List<String> strTransList(String ids, String splitStr) {if(!StringUtils.isBlank(ids)){List<String> idList = new ArrayList<String>();String[] idArr = ids.split(splitStr);if(idArr != null && idArr.length > 0){for(int t=0;t<idArr.length;t++){idList.add(idArr[t]);}}return idList;}return null;}/*** 生成指定位数的随机数字字符串* @param length* @return str* 作者: 李伟国*/public static String createRandomNumber(int length){String str = "";while(str.length() < length){str += Math.round(Math.random()*10);}return str;}/*** 方法名:subStrByByteLen <br>* 功能描述:通过字节长度截取字符串(截取字符串长度<=字节长度)** @param text  待截取文本* @param length    截取字节长度* @param encode    字符编码* @return java.lang.String** @author dc* @date 2019/11/4*/public static String subStrByByteLen(String text, int length, String encode)throws UnsupportedEncodingException {if (text == null) {return null;}StringBuilder sb = new StringBuilder();int currentLength = 0;for (char c : text.toCharArray()) {currentLength += String.valueOf(c).getBytes(encode).length;if (currentLength <= length) {sb.append(c);} else {break;}}return sb.toString();}/*** 方法名:splitStrByByteLen <br>* 功能描述:通过字节长度切分字符串(分割的字符串长度<=字节长度)** @param text  待分割文本* @param length    分割字节长度* @param encode    字符编码* @return java.util.List<java.lang.String>** @author dc* @date 2019/11/4*/public static List<String> splitStrByByteLen(String text, int length, String encode)throws UnsupportedEncodingException {if (text == null) {return null;}String content = new String(text);List<String> list = new ArrayList<>();while(content.length() > 0) {String s = subStrByByteLen(content, length, encode);list.add(s);content = content.substring(s.length());}return list;}/*** 方法名:splitStr <br>* 功能描述:通过字符长度切分字符串** @param text* @param length* @return java.util.List<java.lang.String>** @author dc* @date 2019/11/28*/public static List<String> splitStr(String text, int length) {if (text == null) {return null;}int size = text.length() / length;if (text.length() % length != 0) {size += 1;}List<String> list = new ArrayList<String>();for (int index = 0; index < size; index++) {String childStr = substring(text, index * length,(index + 1) * length);list.add(childStr);}return list;}/*** 方法名:substring <br>* 功能描述:** @param str* @param beginIndex* @param endIndex* @return java.lang.String** @author dc* @date 2019/11/28*/public static String substring(String str, int beginIndex, int endIndex) {if (beginIndex > str.length()){return null;}if (endIndex > str.length()) {return str.substring(beginIndex, str.length());} else {return str.substring(beginIndex, endIndex);}}}