?? stringutils.java
字號:
/**
* Comment
*
* Parameter
*
* Returns
*/
public static String encodeBase64(String data) {
byte bytes[] = (byte[]) null;
try {
bytes = data.getBytes("ISO-8859-1");
} catch (UnsupportedEncodingException unsupportedencodingexception) {
}
return encodeBase64(bytes);
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static String encodeBase64(byte data[]) {
int len = data.length;
StringBuffer ret = new StringBuffer((len / 3 + 1) * 4);
for (int i = 0; i < len; i++) {
int c = data[i] >> 2 & 0x3f;
ret.append(StringUtils.CVT.charAt(c));
c = data[i] << 4 & 0x3f;
if (++i < len)
c |= data[i] >> 4 & 0xf;
ret.append(StringUtils.CVT.charAt(c));
if (i < len) {
c = data[i] << 2 & 0x3f;
if (++i < len)
c |= data[i] >> 6 & 0x3;
ret.append(StringUtils.CVT.charAt(c));
} else {
i++;
ret.append('=');
}
if (i < len) {
c = data[i] & 0x3f;
ret.append(StringUtils.CVT.charAt(c));
} else {
ret.append('=');
}
}
return ret.toString();
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static String decodeBase64(String data) {
byte bytes[] = (byte[]) null;
try {
bytes = data.getBytes("ISO-8859-1");
} catch (UnsupportedEncodingException unsupportedencodingexception) {
}
return decodeBase64(bytes);
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static String decodeBase64(byte data[]) {
int len = data.length;
StringBuffer ret = new StringBuffer((len * 3) / 4);
for (int i = 0; i < len; i++) {
int c = StringUtils.CVT.indexOf(data[i]);
i++;
int c1 = StringUtils.CVT.indexOf(data[i]);
c = c << 2 | c1 >> 4 & 0x3;
ret.append((char) c);
if (++i < len) {
c = data[i];
if (61 == c)
break;
c = StringUtils.CVT.indexOf(c);
c1 = c1 << 4 & 0xf0 | c >> 2 & 0xf;
ret.append((char) c1);
}
if (++i >= len)
continue;
c1 = data[i];
if (61 == c1)
break;
c1 = StringUtils.CVT.indexOf(c1);
c = c << 6 & 0xc0 | c1;
ret.append((char) c);
}
return ret.toString();
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String[] toLowerCaseWordArray(String text) {
if (text == null || text.length() == 0)
return new String[0];
ArrayList<String> wordList = new ArrayList<String>();
BreakIterator boundary = BreakIterator.getWordInstance();
boundary.setText(text);
int start = 0;
for (int end = boundary.next(); end != -1; end = boundary.next()) {
String tmp = text.substring(start, end).trim();
tmp = replace(tmp, "+", "");
tmp = replace(tmp, "/", "");
tmp = replace(tmp, "\\", "");
tmp = replace(tmp, "#", "");
tmp = replace(tmp, "*", "");
tmp = replace(tmp, ")", "");
tmp = replace(tmp, "(", "");
tmp = replace(tmp, "&", "");
if (tmp.length() > 0)
wordList.add(tmp);
start = end;
}
return (String[]) wordList.toArray(new String[wordList.size()]);
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String randomString(int length) {
if (length < 1)
return null;
char randBuffer[] = new char[length];
for (int i = 0; i < randBuffer.length; i++)
randBuffer[i] = numbersAndLetters[randGen.nextInt(71)];
return new String(randBuffer);
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String chopAtWord(String string, int length) {
if (string == null || string.length() == 0)
return string;
char charArray[] = string.toCharArray();
int sLength = string.length();
if (length < sLength)
sLength = length;
for (int i = 0; i < sLength - 1; i++) {
if (charArray[i] == '\r' && charArray[i + 1] == '\n')
return string.substring(0, i + 1);
if (charArray[i] == '\n')
return string.substring(0, i);
}
if (charArray[sLength - 1] == '\n')
return string.substring(0, sLength - 1);
if (string.length() <= length)
return string;
for (int i = length - 1; i > 0; i--)
if (charArray[i] == ' ')
return string.substring(0, i).trim();
return string.substring(0, length);
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static String chopAtWordsAround(String input, String wordList[],
int numChars) {
if (input == null || "".equals(input.trim()) || wordList == null
|| wordList.length == 0 || numChars == 0)
return null;
String lc = input.toLowerCase();
for (int i = 0; i < wordList.length; i++) {
int pos = lc.indexOf(wordList[i]);
if (pos > -1) {
int beginIdx = pos - numChars;
if (beginIdx < 0)
beginIdx = 0;
int endIdx = pos + numChars;
if (endIdx > input.length() - 1)
endIdx = input.length() - 1;
char chars[];
for (chars = input.toCharArray(); beginIdx > 0
&& chars[beginIdx] != ' ' && chars[beginIdx] != '\n'
&& chars[beginIdx] != '\r'; beginIdx--)
;
for (; endIdx < input.length() && chars[endIdx] != ' '
&& chars[endIdx] != '\n' && chars[endIdx] != '\r'; endIdx++)
;
return input.substring(beginIdx, endIdx);
}
}
return input.substring(0, input.length() >= 200 ? 200 : input.length());
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static String wordWrap(String input, int width, Locale locale) {
if (input == null)
return "";
if (width < 5)
return input;
if (width >= input.length())
return input;
StringBuffer buf = new StringBuffer(input);
boolean endOfLine = false;
int lineStart = 0;
for (int i = 0; i < buf.length(); i++) {
if (buf.charAt(i) == '\n') {
lineStart = i + 1;
endOfLine = true;
}
if (i > (lineStart + width) - 1)
if (!endOfLine) {
int limit = i - lineStart - 1;
BreakIterator breaks = BreakIterator
.getLineInstance(locale);
breaks.setText(buf.substring(lineStart, i));
int end = breaks.last();
if (end == limit + 1
&& !Character.isWhitespace(buf.charAt(lineStart
+ end)))
end = breaks.preceding(end - 1);
if (end != -1 && end == limit + 1) {
buf.replace(lineStart + end, lineStart + end + 1, "\n");
lineStart += end;
} else if (end != -1 && end != 0) {
buf.insert(lineStart + end, '\n');
lineStart = lineStart + end + 1;
} else {
buf.insert(i, '\n');
lineStart = i + 1;
}
} else {
buf.insert(i, '\n');
lineStart = i + 1;
endOfLine = false;
}
}
return buf.toString();
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String highlightWords(String string, String words[],
String startHighlight, String endHighlight) {
if (string == null || words == null || startHighlight == null
|| endHighlight == null)
return null;
StringBuffer regexp = new StringBuffer();
for (int x = 0; x < words.length; x++) {
regexp.append(words[x]);
if (x != words.length - 1)
regexp.append("|");
}
regexp.insert(0, "s/\\b(");
regexp.append(")\\b/");
regexp.append(startHighlight);
regexp.append("$1");
regexp.append(endHighlight);
regexp.append("/igm");
return null;
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String escapeForXML(String string) {
if (string == null)
return null;
int i = 0;
int last = 0;
char input[] = string.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(AMP_ENCODE);
} else if (ch == '"') {
if (i > last)
out.append(input, last, i - last);
last = i + 1;
out.append(QUOTE_ENCODE);
} else if (ch != '\n' && ch != '\r' && ch != '\t' && ch < ' ') {
if (i > last)
out.append(input, last, i - last);
last = i + 1;
}
}
if (last == 0)
return string;
if (i > last)
out.append(input, last, i - last);
return out.toString();
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String unescapeFromXML(String string) {
string = replace(string, "<", "<");
string = replace(string, ">", ">");
string = replace(string, """, "\"");
return replace(string, "&", "&");
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String zeroPadString(String string, int length) {
if (string == null || string.length() > length) {
return string;
} else {
StringBuffer buf = new StringBuffer(length);
buf.append(zeroArray, 0, length - string.length());
buf.append(string);
return buf.toString();
}
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static final String dateToMillis(Date date) {
return zeroPadString(Long.toString(date.getTime()), 15);
}
/**
* Comment 檢查字符串是否為合法的手機號碼
*
* Parameter 被檢查的字符串
*
* Returns 返回是否標志
*/
public final static boolean isCMCCMobile(String strMobile) {
if (!strMobile.startsWith("86")) {
strMobile = "86" + strMobile;
}
return (strMobile.matches(CMCC_REGEXP) || strMobile
.matches(CMCC_REGEXP2));
}
/**
* 判斷輸入的電話是否是聯通的手機
*
* @param strMobile
* @return is or isn't.
*/
public final static boolean isUnicomMobile(String strMobile) {
if (!strMobile.startsWith("86")) {
strMobile = "86" + strMobile;
}
return (strMobile.matches(UNIC_REGEXP) || strMobile
.matches(UNIC_REGEXP2));
}
/**
* Comment
*
* Parameter
*
* Returns
*/
public static void main(String[] args) {
System.out.println(StringUtils.hash("000000"));
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -