`
qq1988627
  • 浏览: 107430 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

StringUtils 工具类

    博客分类:
  • Java
 
阅读更多
package com.atom.util;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
import java.util.StringTokenizer;
import java.util.Vector;

import BizServer.BizKernel.FilterCollection;

import com.atom.proxyModex.SupportAccess;
@SuppressWarnings("unchecked")
public class StringUtil {
	public StringUtil() {
	}

	public static String trimToEmpty(String str) {
		return str == null ? "" : str.trim();
	}
	
	//pxw
	public static boolean isTrimEmpty(String s){
		return s==null || s.trim().equals("");
	}
	
	//pxw
	public static String toSafeText(String s){
		return s==null?"":s;
	}
	
	//pxw
	public static boolean isEmpty(String str) {
		return str == null || str.length() == 0;
	}
	//pxw
	public static final String SplitString = "[]";
	public static String[] SplitTableAndText(String s){
			List<String> resultList = new ArrayList<String>();
			while(true){
				int begin = s.indexOf("[");
				int end = s.indexOf("]");
				if(begin<0 || end<0) break;
				String singleData = s.substring(begin+1, end);
				if(!StringUtil.isTrimEmpty(singleData))
					resultList.add(singleData);
				s=s.substring(end+1);
			}
			
			return resultList.toArray(new String[resultList.size()]);
	}

	public static String notNull(String theString) {
		if (theString == null)
			return new String("");
		else
			return theString.trim();
	}

	public static String notNull(Object theString) {
		String str = (String) theString;
		return notNull(str);
	}

	public static String notNull(String name, Properties prop) {
		name = notNull(name);
		String str = notNull(prop.getProperty(name));
		return str;
	}

	public static String numberToLetter(int number, boolean upperCaseFlag)
			throws Exception {
		if (number < 1 || number > 26)
			throw new Exception(
					"The number is out of the proper range (1 to 26) to be converted to a letter.");
		int modnumber = number + 9;
		char thechar = Character.forDigit(modnumber, 36);
		if (upperCaseFlag)
			thechar = Character.toUpperCase(thechar);
		return (new StringBuilder()).append(thechar).toString();
	}

	
	public static Vector explode(String str, String tok) {
		StringTokenizer tokens = new StringTokenizer(str, tok);
		Vector v = new Vector();
		if (tokens.countTokens() > 1)
			while (tokens.hasMoreTokens()) {
				String s = tokens.nextToken().trim();
				if (!s.equals(""))
					v.add(s);
			}
		else
			v.add(str);
		return v;
	}

	public static String implode(String bind, Vector v) {
		String str = "";
		String oneStr = "";
		boolean needBind = false;
		for (Enumeration e = v.elements(); e.hasMoreElements();) {
			oneStr = (String) e.nextElement();
			str = (new StringBuilder(String.valueOf(str))).append(
					needBind ? bind : "").toString();
			str = (new StringBuilder(String.valueOf(str))).append(oneStr)
					.toString();
			needBind = true;
		}

		return str;
	}

	public static String implode(String bind, String str_array[]) {
		String str = "";
		String oneStr = "";
		boolean needBind = false;
		for (int i = 0; i < str_array.length; i++) {
			oneStr = str_array[i];
			str = (new StringBuilder(String.valueOf(str))).append(
					needBind ? bind : "").toString();
			str = (new StringBuilder(String.valueOf(str))).append(oneStr)
					.toString();
			needBind = true;
		}

		return str;
	}

	public static Vector toVector(String str_array[]) {
		Vector v = new Vector();
		for (int i = 0; i < str_array.length; i++)
			v.add(str_array[i]);

		return v;
	}

	public static String cutByMaxLength(String str, int max_num, String lan) {
		if (str.length() > max_num)
			try {
				str = str.substring(0, max_num);
				if (lan.equals("en")) {
					str = str.substring(0, str.lastIndexOf(" "));
					str = (new StringBuilder(String.valueOf(str))).append(
							" ...").toString();
				} else {
					int j;
					for (j = 0; j < max_num; j++) {
						byte word[] = str.substring(j, j + 1).getBytes();
						int tempInt = word[0] & 255;
						if (tempInt > 128)
							j++;
					}

					if (j != max_num)
						str = str.substring(0, max_num - 1);
					str = (new StringBuilder(String.valueOf(str)))
							.append("...").toString();
				}
			} catch (Exception e) {
				return str;
			}
		return str;
	}

	public static int getHzLen(String str) {
		int hzLen = 0;
		if (str != null && str.length() > 0)
			hzLen = str.getBytes().length;
		return hzLen;
	}

	public static String getFormStr(String name, Properties prop, String cmp,
			String selected_str) {
		return getFormStr(notNull(name, prop), cmp, selected_str);
	}

	public static String getFormStr(String value, String cmp,
			String selected_str) {
		if (value.equals(cmp))
			return selected_str;
		else
			return "";
	}

	public static Properties setEmptyValue(String name, Properties prop,
			String value) {
		if (notNull(name, prop).equals(""))
			prop.setProperty(name, notNull(value));
		return prop;
	}

	public static String codeConvert(String str) {
		if (str == null)
			return "";
		if (str.length() == 0)
			return "";
		else
			return str;
	}

	public static String codeEncode(String str) {
		if (str == null)
			return "";
		str = str.trim();
		if (str.length() == 0)
			return "";
		else
			return str;
	}

	public static String webCodeConvert(String str, String language) {
		if (str == null)
			return "";
		str = str.trim();
		if (str.length() == 0)
			return "";
		if (language == null)
			language = "";
		language = language.trim();
		if (language.toLowerCase().equals("cn"))
			language = "GBK";
		else if (language.toLowerCase().equals("jp"))
			language = "SJIS";
		else
			language = "";
		try {
			str = new String(str.getBytes(language), "8859_1");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return str;
	}

	public static String isoToGBConvert(String str) {
		if (str == null)
			return "";
		str = str.trim();
		if (str.length() == 0)
			return "";
		try {
			str = new String(str.getBytes("8859_1"), "gb2312");
		} catch (UnsupportedEncodingException unsupportedencodingexception) {
		}
		return str;
	}

	public static String notBlankNull(String theString) {
		if (theString == null)
			return "null";
		if (theString.trim().equals(""))
			return "''";
		else
			return (new StringBuilder("'")).append(theString.trim())
					.append("'").toString();
	}

	public static boolean hasCJK(String str) {
		boolean flag = false;
		if (str != null)
			flag = str.getBytes().length != str.length();
		return flag;
	}

	public static boolean isInteger(String str, int len) {
		if ("".equals(str))
			str = "0";
		if (len > 0 && str.length() != len)
			return false;
		try {
			Integer.parseInt(str);
		} catch (Exception exception) {
			return false;
		}
		return true;
	}

	public static boolean isEqual(char one[], char other[]) {
		boolean retVal = false;
		if (one != null && other != null && one.length == other.length) {
			for (int i = 0; i < one.length; i++) {
				if (one[i] != other[i])
					break;
				if (i == one.length - 1)
					retVal = true;
			}

		}
		return retVal;
	}

	public static boolean isDoubleValid(String str, int intLen) {
		if ("".equals(str))
			str = "0";
		Double.parseDouble(str);
		int pointPos = str.indexOf(".");
		if (pointPos == -1)
			return str.length() <= intLen;
		if (pointPos == 0)
			return true;
		return pointPos <= intLen;
	}

	public static int compareUtil(String s1, String s2) {
		int len = s1.length() - s2.length();
		if (len > 0) {
			for (int i = 0; i < len; i++)
				s2 = (new StringBuilder("0")).append(s2).toString();

		}
		if (len < 0) {
			len = -len;
			for (int i = 0; i < len; i++)
				s1 = (new StringBuilder("0")).append(s1).toString();

		}
		int result = s1.compareTo(s2);
		return result;
	}


	public static String collectionToDelimitedString(Collection c, String delim) {
		if (c == null)
			return "null";
		else
			return iteratorToDelimitedString(c.iterator(), delim);
	}

	public static String iteratorToDelimitedString(Iterator itr, String delim) {
		if (itr == null)
			return "null";
		StringBuffer sb = new StringBuffer();
		int i = 0;
		for (; itr.hasNext(); sb.append(itr.next()))
			if (i++ > 0)
				sb.append(delim);

		return sb.toString();
	}

	public static String arrayToDelimitedString(Object arr[], String delim) {
		return arrayToDelimitedString(arr, delim, "");
	}

	public static boolean isDigitOk(int num) {
		return num <= 0;
	}

	public static String arrayToDelimitedString(Object arr[], String delim,
			String quoteMark) {
		if (arr == null)
			return "null";
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < arr.length; i++) {
			if (i > 0)
				sb.append(delim);
			sb.append(quote(arr[i].toString(), quoteMark));
		}

		return sb.toString();
	}

	public static String quote(String str, String quoteMark) {
		return (new StringBuilder(String.valueOf(quoteMark))).append(str)
				.append(quoteMark).toString();
	}

	public static String[] commaDelimitedListToStringArray(String s) {
		return delimitedListToStringArray(s, ",");
	}

	public static String[] delimitedListToStringArray(String s, String delimiter) {
		if (s == null)
			return new String[0];
		if (delimiter == null)
			return (new String[] { s });
		List l = new LinkedList();
		int pos = 0;
		for (int delpos = 0; (delpos = s.indexOf(delimiter, pos)) != -1;) {
			l.add(s.substring(pos, delpos));
			pos = delpos + delimiter.length();
		}

		if (pos <= s.length())
			l.add(s.substring(pos));
		return (String[]) l.toArray(new String[l.size()]);
	}

	public static String getFileName(String path) {
		return getFileName(path, File.pathSeparator);
	}

	public static String getFileName(String path, String pathSeparator) {
		if (path == null)
			return null;
		int position = path.lastIndexOf(pathSeparator);
		if (position >= 0)
			return path.substring(position + 1);
		else
			return path;
	}

	public static String getMd5(String s) {
		char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
				'A', 'B', 'C', 'D', 'E', 'F' };
		try {
			byte strTemp[] = s.getBytes();
			MessageDigest mdTemp = MessageDigest.getInstance("MD5");
			mdTemp.update(strTemp);
			byte md[] = mdTemp.digest();
			int j = md.length;
			char str[] = new char[j * 2];
			int k = 0;
			for (int i = 0; i < j; i++) {
				byte byte0 = md[i];
				str[k++] = hexDigits[byte0 >>> 4 & 15];
				str[k++] = hexDigits[byte0 & 15];
			}

			return new String(str);
		} catch (Exception e) {
			return null;
		}
	}
	
	//pxw
	public static String Format(String patternStr,String... s){
		for(int i=0;i<s.length;i++){
			patternStr = patternStr.replace("{"+i+"}", s[i]);
		}
		return patternStr;
	}
	
	public static int[] toIntegerArray(String[] s){
		int[] toInt=new int[s.length];
		for(int i=0;i<s.length;i++){
			toInt[i]=Integer.valueOf(s[i]);
		}
		return toInt;
	}	
	
	public static String trimForChar(String s,char split){
		s = trimToEmpty(s);
		if(isEmpty(s)) return s;
		char[] chars = s.toCharArray();
		int begin = 0;
		int end = 0;
		boolean content = false;
		for(int i=0;i<chars.length;i++){
			if(chars[i]==split){
				if(!content){
					begin = i+1;
				}
			}else{
				content = true;
				end = i+1;
			}
		}
		if(end==0){
			return "";
		}
		s = s.substring(begin,end);
		return s;
	}
	
	public static void main(String[] args) throws Exception {
//		String ids = ",,,,";
//		System.out.println(trimForChar(ids, ','));
//		String rep = "aaa{1}bbb{0}";
//		System.out.println(Format(rep, "bb","aa"));
		String ids = "aaa,aaa,,,";
		System.out.println(ids.split(",").length);
	}

	public static int[] toIntegerArray(String ids) { 
		if(ids==null){
			return null;
		}
		if(ids.endsWith(",")){
			ids=ids.substring(0, ids.length()-1);
		}
		String[] id=ids.split(",");
		return toIntegerArray(id);
	}	
	
	public static String trimFirstAndLast (String s,String split) {
		s = trimToEmpty(s);
		if(isEmpty(s)) return s;
		if(s.endsWith(split)){
			s=s.substring(0, s.length()-1);
		}
		if(s.substring(0, 1).equalsIgnoreCase(split)){
		s=s.substring(1);
		}
		return s;
	}	
	
	/**
	 * String转Date
	 * @param date 日期时间
	 * @param dateFormat 日期格式
	 * @return date
	 * @author sean
	 */
	public static Date str2date(String date,String dateFormat){
		try {
			DateFormat format = new SimpleDateFormat(dateFormat);//yyyy-MM-dd HH:mm:ss
		    Date redate = format.parse(date);  // Thu Jan 18 00:00:00 CST 2007
		    return redate;
		} catch (Exception e) {    
		    e.printStackTrace();    
		}  
		return null;
	}
	
	/**
	 * string转list
	 * @param str
	 * @return list
	 */
	public static List str2list(String str){
		if(str==null || str==""){
			return null;
		}
		if(str.endsWith(",")){
			str=str.substring(0, str.length()-1);
		}
		ArrayList list = new ArrayList();
		String[] id=str.split(",");
		for(int i=0;i<id.length;i++){
			list.add(id[i]);
		}
		return list;
	}
}

 

分享到:
评论

相关推荐

    StringUtils工具类的使用

    `StringUtils`工具类是Java开发中非常常用的一个类库,主要提供了一系列静态方法来处理字符串。这个工具类在处理字符串的常见操作时提供了很大的便利,比如数组转字符串、空值检测、非空处理以及空格处理等。接下来...

    java自定义封装StringUtils常用工具类

    Java 自定义封装 StringUtils 工具类 Java 中的字符串处理是非常重要的一部分,而 StringUtils 工具类则是 Java 中最常用的字符串处理工具类之一。今天,我们将详细介绍如何自定义封装一个 StringUtils 工具类,并...

    Java中StringUtils工具类进行String为空的判断解析

    Java中StringUtils工具类进行String为空的判断解析 在Java中,StringUtils工具类提供了多种方法来判断一个字符串是否为空或非空,这些方法都是非常有用的。在本文中,我们将详细介绍StringUtils工具类中关于String...

    基于StringUtils工具类的常用方法介绍(必看篇)

    基于StringUtils工具类的常用方法介绍 StringUtils工具类是Java中一个功能强大且常用的工具类,提供了许多实用的字符串操作方法。下面将对StringUtils工具类的常用方法进行介绍。 判断字符串是否为空 * isEmpty...

    自定封装StringUtils常用方法

    继承了org.apache.commons.lang3.StringUtils工具类,加入了部分常用方法,使用时直接添加到项目的公共utils下,同时在pom.xml加入依赖: &lt;!-- ...

    Java中StringUtils工具类的一些用法实例

    在Java编程中,Apache Commons Lang库提供了一个名为`StringUtils`的工具类,它扩展了Java标准库中的`String`类,提供了许多实用的字符串处理方法。这些方法在处理字符串时非常方便,尤其对于null安全性和空白字符的...

    java常用工具类整理

    1. org.springframework.util.StringUtils 工具类用于判断字符串非空,常用的方法有 isEmpty()、hasText() 等。 2. org.springframework.util.CollectionUtils 工具类用于判断 List 和 Map 集合的非空,常用的方法有...

    StringUtils

    各种字符的处理,例如判断是否电话号码,电话号码隐藏中间几位,判断字符串是否为空,判断是否全是数字,合并两个String数组 ,格式化价格.

    java utils 工具类

    例如,一个简单的StringUtils工具类可能包含如下方法: ```java public class StringUtils { public static boolean isEmpty(String str) { return str == null || str.isEmpty(); } public static String ...

    excel 注解方式导入导出(包含常用工具类)

    StringUtils工具类则是处理字符串的利器,提供了各种字符串操作的方法,如拼接、截取、替换、检查空值等。在Excel数据导入导出时,可能会遇到字符串数据的清洗、转换等问题,这时StringUtils的函数就派上了用场,...

    StringUtils 字符串常用工具

    在Java编程语言中,`StringUtils` 是一个非常实用的工具类,它提供了大量关于字符串操作的方法,极大地简化了对字符串的处理。这个类通常在处理字符串时提高代码的可读性和效率,尤其在处理字符串的空值、拼接、分割...

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\007 字符串\StringUtils.java D:\002 我的工具类\008 校验 D:\002 我的工具类\008 校验\一起使用 D:\002 我的工具类\008 校验\一起使用\008 校验 D:\002 我的工具类\008 校验\一起使用\008 校验\...

    过滤表情工具类,可以过滤掉微信名称里面的表情

    可以过滤掉emoji表情等字符串,下载的亲们,请评论下,谢谢,里面有用到StringUtils工具类,如果没有的小伙伴可以来我的资源里面下载! !

    工具类项目,开发经常用到的一些工具类

    在软件开发过程中,工具类(Utility Class)是程序员日常工作中不可或缺的部分。这些工具类通常包含一组静态方法,用于执行各种通用任务,以提高代码的可重用性和效率。标题和描述都提到了“开发经常用到的一些工具...

    一些java常用的工具类

    在Java编程中,工具类(Utility Classes)是非常重要的组成部分,它们提供了许多通用的功能,以简化开发人员的工作。以下是对"一些java常用的工具类"的详细说明。 首先,工具类通常包含静态方法,这些方法不依赖于...

    java开发,30个常用工具类总结,全部来自项目实践中用到的工具类

    8. **StringUtils**: 专门处理字符串的工具类,提供各种字符串处理功能,如拼接、截取、替换、校验等。 9. **CollectionUtils**: 针对集合对象的操作,如合并、过滤、排序、查找等。 10. **ReflectionUtils**: ...

Global site tag (gtag.js) - Google Analytics