📄 commonutil.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 + -