⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commonutil.java

📁 实现很多功能 实现很多功能 实现很多功能
💻 JAVA
字号:
/*
 * 创建日期 2007-2-7
 *
 * 更改所生成文件模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 */
package com.easycolony;

import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;
import java.text.Format;
import java.text.NumberFormat;
import java.util.Locale;

/**
 * @author Alex Yu
 *
 * 更改所生成类型注释的模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 */
public class CommonUtil {
	/**
	 * 去除字符串两边特定的字符以及空格。
	 * 例:trim("   |abc|   ",'|') 的结果为 "abc"
	 * 
	 * @param str ,预处理的字符串
	 * @param trimChar ,截取的字符
	 * 
	 * @return
	 * */
	public static String trim(String str, char trimChar) {
		if (str == null)
			return str;

		return str.length() == 0
			? str
			: leftTrim(rightTrim(str, trimChar), trimChar);
	}

	/**
	 * 去除字符串两边特定的字符。
	 * 例:trim("|#|#abc|#|#","|#") 的结果为 "abc"
	 *  
	 * @param str ,预处理的字符串
	 * @param trimStr ,截取的字符串
	 * 
	 * @return
	 * */
	public static String trim(String str, String trimStr) {
		return leftTrim(rightTrim(str, trimStr), trimStr);
	}

	/**
	 * 去除字符串左边特定的字符以及空格。
	 * 例:leftTrim("|abc|",'|') 的结果为 "abc|"
	 * 
	 * @param str ,预处理的字符串
	 * @param trimChar ,截取的字符
	 * 
	 * @return
	 * */
	public static String leftTrim(String str, char trimChar) {
		if (str == null)
			return str;

		if (trimChar != ' ')
			str = leftTrim(str, ' ');

		int len = str.length();
		int st = 0;
		int off = 0;
		char[] val = str.toCharArray();

		while ((st < len) && (val[off + st] == trimChar)) {
			st++;
		}

		return (st > 0) ? str.substring(st) : str;
	}

	/**
	 * 去除字符串左边特定的字符串.
	 * 例:leftTrim("|||abc||","||") 的结果为 "|abc||"
	 * 
	 * @param str ,预处理的字符串
	 * @param trimStr ,截取的字符串
	 * 
	 * @return
	 * */
	public static String leftTrim(String str, String trimStr) {
		if (str == null
			|| trimStr == null
			|| str.length() == 0
			|| trimStr.length() == 0)
			return str;

		int len = str.length();
		int trmLen = trimStr.length();
		int st = 0;
		int pos = 0;
		int off = 0;
		char[] val = str.toCharArray();
		char[] trmVal = trimStr.toCharArray();

		while ((st < len) && (val[st] == trmVal[pos])) {
			pos++;

			if (pos == trmLen) {
				pos = 0;
				off += trmLen;
			}

			st++;
		}

		return (off > 0) ? str.substring(off) : str;
	}

	/**
	 * 去除字符串右边特定的字符。
	 * 例:rightTrim("|abc|",'|') 的结果为 "|abc"
	 * 
	 * @param str ,预处理的字符串
	 * @param trimChar ,截取的字符
	 * 
	 * @return
	 * */
	public static String rightTrim(String str, char trimChar) {
		if (str == null)
			return str;

		if (trimChar != ' ')
			str = rightTrim(str, ' ');

		int len = str.length();
		int count = len;
		char[] val = str.toCharArray();

		while ((len > 0) && (val[len - 1] == trimChar)) {
			len--;
		}

		return ((len < count)) ? str.substring(0, len) : str;
	}

	/**
	 * 去除字符串右边特定的字符串。
	 * 例:rightTrim("|||abc||","||") 的结果为 "|||abc"
	 * 
	 * @param str ,预处理的字符串
	 * @param trimStr ,截取的字符串
	 * 
	 * @return
	 * */
	public static String rightTrim(String str, String trimStr) {
		if (str == null
			|| trimStr == null
			|| str.length() == 0
			|| trimStr.length() == 0)
			return str;

		int len = str.length();
		int trmLen = trimStr.length();
		int pos = trmLen;
		int off = len;
		int count = len;
		char[] val = str.toCharArray();
		char[] trmVal = trimStr.toCharArray();

		while ((len > 0) && (val[len - 1] == trmVal[pos - 1])) {
			pos--;
			if (pos == 0) {
				off -= trmLen;
				pos = trmLen;
			}

			len--;
		}

		return ((off < count)) ? str.substring(0, off) : str;
	}

	/**
	 * 分别去除字符串左,右两边特定的字符。
	 * 例:eachTrim("[abc]", '[', ']') 的结果为 "abc"
	 * 
	 * @param str ,预处理的字符串
	 * @param leftTrimChar ,左边截取的字符
	 * @param rightTrimChar ,右边截取的字符 
	 * 
	 * @return
	 * */
	public static String eachTrim(String str, char leftTrimChar, char rightTrimChar) {
		if (str == null)
			return str;

		str = leftTrim(str, leftTrimChar);
		str = rightTrim(str, rightTrimChar);
		return str;
	}

	/**
	 * 分别去除字符串左,右两边特定的字符串。
	 * 例:eachTrim("< !--abc-->", "< !--", "-->") 的结果为 "abc"
	 *     eachTrim("#$%-#$%- abc[0][0]","#$%-","[0]") 的结果为 " abc"
	 * 
	 * @param str ,预处理的字符串
	 * @param leftTrimString ,左边截取的字符串
	 * @param rightTrimString ,右边截取的字符串 
	 * 
	 * @return
	 * */
	public static String eachTrim(
		String str,
		String leftTrimStr,
		String rightTrimStr) {
		return leftTrim(rightTrim(str, rightTrimStr), leftTrimStr);
	}

	private static final char[] base64EncodeChars =
		new char[] {
			'A',
			'B',
			'C',
			'D',
			'E',
			'F',
			'G',
			'H',
			'I',
			'J',
			'K',
			'L',
			'M',
			'N',
			'O',
			'P',
			'Q',
			'R',
			'S',
			'T',
			'U',
			'V',
			'W',
			'X',
			'Y',
			'Z',
			'a',
			'b',
			'c',
			'd',
			'e',
			'f',
			'g',
			'h',
			'i',
			'j',
			'k',
			'l',
			'm',
			'n',
			'o',
			'p',
			'q',
			'r',
			's',
			't',
			'u',
			'v',
			'w',
			'x',
			'y',
			'z',
			'0',
			'1',
			'2',
			'3',
			'4',
			'5',
			'6',
			'7',
			'8',
			'9',
			'+',
			'/' };

	private static final byte[] base64DecodeChars =
		new byte[] {
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			62,
			-1,
			-1,
			-1,
			63,
			52,
			53,
			54,
			55,
			56,
			57,
			58,
			59,
			60,
			61,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			0,
			1,
			2,
			3,
			4,
			5,
			6,
			7,
			8,
			9,
			10,
			11,
			12,
			13,
			14,
			15,
			16,
			17,
			18,
			19,
			20,
			21,
			22,
			23,
			24,
			25,
			-1,
			-1,
			-1,
			-1,
			-1,
			-1,
			26,
			27,
			28,
			29,
			30,
			31,
			32,
			33,
			34,
			35,
			36,
			37,
			38,
			39,
			40,
			41,
			42,
			43,
			44,
			45,
			46,
			47,
			48,
			49,
			50,
			51,
			-1,
			-1,
			-1,
			-1,
			-1 };

	private static String _base64Encode(byte[] data) {
		
		StringBuffer sb = new StringBuffer();
		int len = data.length;
		int i = 0;
		int b1, b2, b3;

		while (i < len) {
			b1 = data[i++] & 0xff;
			if (i == len) {
				sb.append(base64EncodeChars[b1 >>> 2]);
				sb.append(base64EncodeChars[(b1 & 0x3) << 4]);
				sb.append("==");
				break;
			}
			b2 = data[i++] & 0xff;
			if (i == len) {
				sb.append(base64EncodeChars[b1 >>> 2]);
				sb.append(
					base64EncodeChars[((b1 & 0x03) << 4)
						| ((b2 & 0xf0) >>> 4)]);
				sb.append(base64EncodeChars[(b2 & 0x0f) << 2]);
				sb.append("=");
				break;
			}
			b3 = data[i++] & 0xff;
			sb.append(base64EncodeChars[b1 >>> 2]);
			sb.append(
				base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]);
			sb.append(
				base64EncodeChars[((b2 & 0x0f) << 2) | ((b3 & 0xc0) >>> 6)]);
			sb.append(base64EncodeChars[b3 & 0x3f]);
		}
		return sb.toString();
	}

	private static byte[] _base64Decode(String str) {
		
		
		byte[] data = str.getBytes();
		int len = data.length;
		ByteArrayOutputStream buf = new ByteArrayOutputStream(len);
		int i = 0;
		int b1, b2, b3, b4;

		while (i < len) {

			/* b1 */
			do {
				b1 = base64DecodeChars[data[i++]];
			} while (i < len && b1 == -1);
			if (b1 == -1) {
				break;
			}

			/* b2 */
			do {
				b2 = base64DecodeChars[data[i++]];
			} while (i < len && b2 == -1);
			if (b2 == -1) {
				break;
			}
			buf.write((int) ((b1 << 2) | ((b2 & 0x30) >>> 4)));

			/* b3 */
			do {
				b3 = data[i++];
				if (b3 == 61) {
					return buf.toByteArray();
				}
				b3 = base64DecodeChars[b3];
			} while (i < len && b3 == -1);
			if (b3 == -1) {
				break;
			}
			buf.write((int) (((b2 & 0x0f) << 4) | ((b3 & 0x3c) >>> 2)));

			/* b4 */
			do {
				b4 = data[i++];
				if (b4 == 61) {
					return buf.toByteArray();
				}
				b4 = base64DecodeChars[b4];
			} while (i < len && b4 == -1);
			if (b4 == -1) {
				break;
			}
			buf.write((int) (((b3 & 0x03) << 6) | b4));
		}
		return buf.toByteArray();
	}
	
	/**
	 * 对指定字符串进行Base64解码。
	 * @param str ,待解码字符串
	 * @param characterSet ,字符集
	 * 
	 * @return
	 * 
	 * */
	public static String base64Decode(String str,String characterSet) throws UnsupportedEncodingException{
		if(str==null)	return null;
		
		byte[] bytes = _base64Decode(str);		
		return new String(bytes,characterSet);
	}

	/**
	 * 对指定字符串进行Base64编码。
	 * @param str ,待编码字符串
	 * @param characterSet ,字符集
	 * 
	 * @return
	 * 
	 * */	
	public static String base64Encode(String str,String characterSet) throws UnsupportedEncodingException{
		if(str==null)	return null;
		
		byte[] bytes = str.getBytes(characterSet);
		return _base64Encode(bytes);
	}
	
	
	
	
	/**
	 * Descrption:取得当前日期,格式为:yyyy-MM-dd HH:mm:ss
	 * @return String
	 * @throws java.lang.Exception
	 */
	public static String getPlusTime(java.util.Date date) throws Exception
	{
		java.text.SimpleDateFormat sdfLongTimePlus = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String nowDate = "";
		try
		{
			nowDate = sdfLongTimePlus.format(date);
			return nowDate;
		}
		catch (Exception e)
		{
			throw e;
		}
	}
	/**
	 * 用"0"补足一个字符串到指定长度
	 * @param str -  源字符串
	 * @param size - 补足后应达到的长度
	 * @return - 补零后的结果
	 */
	public static String fillZero(long code, int size)
	{
		String str = String.valueOf(code);
		String result;
		if (str.length() < size)
		{
			char[] s = new char[size - str.length()];
			for (int i = 0; i < (size - str.length()); i++)
			{
				s[i] = '0';
			}
			result = new String(s) + str;
		}
		else
		{
			result = str;
		}

		return result;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -