?? stringutils.java
字號:
package com.bci.commons.util;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.BreakIterator;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;
import java.util.Random;
/**
* Use this class for operate strings,encrypt,etc.
*
* @author Youming.Xu
*/
public class StringUtils {
private static final char QUOTE_ENCODE[] = """.toCharArray();
private static final char AMP_ENCODE[] = "&".toCharArray();
private static final char LT_ENCODE[] = "<".toCharArray();
private static final char GT_ENCODE[] = ">".toCharArray();
private static final String UNIC_REGEXP = "^8613[0,1,2,3]\\d{8}$";
private static final String UNIC_REGEXP2 = "^8615[3,6]\\d{8}$";
private static final String CMCC_REGEXP = "^8613[4-9]\\d{8}$";
private static final String CMCC_REGEXP2 = "^8615[0,7,8,9]\\d{8}$";
private static MessageDigest digest = null;
// private static final int fillchar = 61;
private static final String CVT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
private static Random randGen = new Random();
private static char numbersAndLetters[] = "0123456789abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
.toCharArray();
private static final char zeroArray[] = "0000000000000000000000000000000000000000000000000000000000000000"
.toCharArray();
/**
* Constructor for this class
*/
public StringUtils() {
super();
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String replace(String string, String oldString,
String newString) {
if (string == null)
return null;
if (newString == null)
return string;
int i = 0;
if ((i = string.indexOf(oldString, i)) >= 0) {
char string2[] = string.toCharArray();
char newString2[] = newString.toCharArray();
int oLength = oldString.length();
StringBuffer buf = new StringBuffer(string2.length);
buf.append(string2, 0, i);
buf.append(newString2);
i += oLength;
int j;
for (j = i; (i = string.indexOf(oldString, i)) > 0; j = i) {
buf.append(string2, j, i - j);
buf.append(newString2);
i += oLength;
}
buf.append(string2, j, string2.length - j);
return buf.toString();
} else {
return string;
}
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String replaceIgnoreCase(String line, String oldString,
String newString) {
if (line == null)
return null;
String lcLine = line.toLowerCase();
String lcOldString = oldString.toLowerCase();
int i = 0;
if ((i = lcLine.indexOf(lcOldString, i)) >= 0) {
char line2[] = line.toCharArray();
char newString2[] = newString.toCharArray();
int oLength = oldString.length();
StringBuffer buf = new StringBuffer(line2.length);
buf.append(line2, 0, i);
buf.append(newString2);
i += oLength;
int j;
for (j = i; (i = lcLine.indexOf(lcOldString, i)) > 0; j = i) {
buf.append(line2, j, i - j);
buf.append(newString2);
i += oLength;
}
buf.append(line2, j, line2.length - j);
return buf.toString();
} else {
return line;
}
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String replaceIgnoreCase(String line, String oldString,
String newString, int count[]) {
if (line == null)
return null;
String lcLine = line.toLowerCase();
String lcOldString = oldString.toLowerCase();
int i = 0;
if ((i = lcLine.indexOf(lcOldString, i)) >= 0) {
int counter = 1;
char line2[] = line.toCharArray();
char newString2[] = newString.toCharArray();
int oLength = oldString.length();
StringBuffer buf = new StringBuffer(line2.length);
buf.append(line2, 0, i);
buf.append(newString2);
i += oLength;
int j;
for (j = i; (i = lcLine.indexOf(lcOldString, i)) > 0; j = i) {
counter++;
buf.append(line2, j, i - j);
buf.append(newString2);
i += oLength;
}
buf.append(line2, j, line2.length - j);
count[0] = counter;
return buf.toString();
} else {
return line;
}
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String replace(String line, String oldString,
String newString, int count[]) {
if (line == null)
return null;
int i = 0;
if ((i = line.indexOf(oldString, i)) >= 0) {
int counter = 1;
char line2[] = line.toCharArray();
char newString2[] = newString.toCharArray();
int oLength = oldString.length();
StringBuffer buf = new StringBuffer(line2.length);
buf.append(line2, 0, i);
buf.append(newString2);
i += oLength;
int j;
for (j = i; (i = line.indexOf(oldString, i)) > 0; j = i) {
counter++;
buf.append(line2, j, i - j);
buf.append(newString2);
i += oLength;
}
buf.append(line2, j, line2.length - j);
count[0] = counter;
return buf.toString();
} else {
return line;
}
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String stripTags(String in) {
if (in == null)
return null;
int i = 0;
int last = 0;
char input[] = in.toCharArray();
int len = input.length;
StringBuffer out = new StringBuffer((int) ((double) len * 1.3D));
for (; i < len; i++) {
char ch = input[i];
if (ch <= '>')
if (ch == '<') {
if (i + 3 < len && input[i + 1] == 'b'
&& input[i + 2] == 'r' && input[i + 3] == '>') {
i += 3;
} else {
if (i > last)
out.append(input, last, i - last);
last = i + 1;
}
} else if (ch == '>')
last = i + 1;
}
if (last == 0)
return in;
if (i > last)
out.append(input, last, i - last);
return out.toString();
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String escapeHTMLTags(String in) {
if (in == null)
return null;
int i = 0;
int last = 0;
char input[] = in.toCharArray();
int len = input.length;
StringBuffer out = new StringBuffer((int) ((double) len * 1.3D));
for (; i < len; i++) {
char ch = input[i];
if (ch <= '>')
if (ch == '<') {
if (i > last)
out.append(input, last, i - last);
last = i + 1;
out.append(LT_ENCODE);
} else if (ch == '>') {
if (i > last)
out.append(input, last, i - last);
last = i + 1;
out.append(GT_ENCODE);
}
}
if (last == 0)
return in;
if (i > last)
out.append(input, last, i - last);
return out.toString();
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final synchronized String hash(String data) {
if (digest == null)
try {
digest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException nosuchalgorithmexception) {
}
try {
digest.update(data.getBytes("utf-8"));
} catch (UnsupportedEncodingException unsupportedencodingexception) {
}
return encodeHex(digest.digest());
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String encodeHex(byte bytes[]) {
StringBuffer buf = new StringBuffer(bytes.length * 2);
for (int i = 0; i < bytes.length; i++) {
if ((bytes[i] & 0xff) < 16)
buf.append("0");
buf.append(Long.toString(bytes[i] & 0xff, 16));
}
return buf.toString();
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final byte[] decodeHex(String hex) {
char chars[] = hex.toCharArray();
byte bytes[] = new byte[chars.length / 2];
int byteCount = 0;
for (int i = 0; i < chars.length; i += 2) {
int newByte = 0;
newByte |= hexCharToByte(chars[i]);
newByte <<= 4;
newByte |= hexCharToByte(chars[i + 1]);
bytes[byteCount] = (byte) newByte;
byteCount++;
}
return bytes;
}
/**
* Comment
*
* Parameter
*
* Returns
*/
private static final byte hexCharToByte(char ch) {
switch (ch) {
case 48: // '0'
return 0;
case 49: // '1'
return 1;
case 50: // '2'
return 2;
case 51: // '3'
return 3;
case 52: // '4'
return 4;
case 53: // '5'
return 5;
case 54: // '6'
return 6;
case 55: // '7'
return 7;
case 56: // '8'
return 8;
case 57: // '9'
return 9;
case 97: // 'a'
return 10;
case 98: // 'b'
return 11;
case 99: // 'c'
return 12;
case 100: // 'd'
return 13;
case 101: // 'e'
return 14;
case 102: // 'f'
return 15;
case 58: // ':'
case 59: // ';'
case 60: // '<'
case 61: // '='
case 62: // '>'
case 63: // '?'
case 64: // '@'
case 65: // 'A'
case 66: // 'B'
case 67: // 'C'
case 68: // 'D'
case 69: // 'E'
case 70: // 'F'
case 71: // 'G'
case 72: // 'H'
case 73: // 'I'
case 74: // 'J'
case 75: // 'K'
case 76: // 'L'
case 77: // 'M'
case 78: // 'N'
case 79: // 'O'
case 80: // 'P'
case 81: // 'Q'
case 82: // 'R'
case 83: // 'S'
case 84: // 'T'
case 85: // 'U'
case 86: // 'V'
case 87: // 'W'
case 88: // 'X'
case 89: // 'Y'
case 90: // 'Z'
case 91: // '['
case 92: // '\\'
case 93: // ']'
case 94: // '^'
case 95: // '_'
case 96: // '`'
default:
return 0;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -