<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-200  評論-148  文章-15  trackbacks-0

    package com.chinajavaworld.util;
    ?
    import java.io.UnsupportedEncodingException;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.text.BreakIterator;
    import java.util.*;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.io.File;
    ?
    public class StringUtils
    {
    ? private final static String BR_TAG = "<BR>";
    ?
    ??? private StringUtils()
    ??? {
    ??? }
    ?
    ??? /**
    ???? * This method takes a string which may contain newline characters
    ???? * '\n' which it converts to html newline tags.
    ???? *
    ???? * @param input The text to be converted.
    ???? * @return The input string with the newline character '\n' replaced
    ???? * with <br>.
    ???? */
    ??? public static final String convertNewlines(String input) {
    ????? return replace(replace(input, "\r\n", BR_TAG), "\n", BR_TAG);
    ??? }
    ?
    ??? public static final String backConvertNewlines(String input) {
    ????? return replaceIgnoreCase(input, BR_TAG, "\n");
    ??? }
    ?
    ?
    ??? 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).append(newString2);
    ??????????? i += oLength;
    ??????????? int j;
    ??????????? for(j = i; (i = string.indexOf(oldString, i)) > 0; j = i)
    ??????????? {
    ??????????????? buf.append(string2, j, i - j).append(newString2);
    ??????????????? i += oLength;
    ??????????? }
    ?
    ??????????? buf.append(string2, j, string2.length - j);
    ??????????? return buf.toString();
    ??????? } else
    ??????? {
    ??????????? return string;
    ??????? }
    ??? }
    ?
    ??? 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).append(newString2);
    ??????????? i += oLength;
    ??????????? int j;
    ??????????? for(j = i; (i = lcLine.indexOf(lcOldString, i)) > 0; j = i)
    ??????????? {
    ??????????????? buf.append(line2, j, i - j).append(newString2);
    ??????????????? i += oLength;
    ??????????? }
    ?
    ??????????? buf.append(line2, j, line2.length - j);
    ??????????? return buf.toString();
    ??????? } else
    ??????? {
    ??????????? return line;
    ??????? }
    ??? }
    ?
    ??? 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).append(newString2);
    ??????????? i += oLength;
    ??????????? int j;
    ??????????? for(j = i; (i = lcLine.indexOf(lcOldString, i)) > 0; j = i)
    ??????????? {
    ??????????????? counter++;
    ??????????????? buf.append(line2, j, i - j).append(newString2);
    ??????????????? i += oLength;
    ??????????? }
    ?
    ??????????? buf.append(line2, j, line2.length - j);
    ??????????? count[0] = counter;
    ??????????? return buf.toString();
    ??????? } else
    ??????? {
    ??????????? return line;
    ??????? }
    ??? }
    ?
    ??? 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).append(newString2);
    ??????????? i += oLength;
    ??????????? int j;
    ??????????? for(j = i; (i = line.indexOf(oldString, i)) > 0; j = i)
    ??????????? {
    ??????????????? counter++;
    ??????????????? buf.append(line2, j, i - j).append(newString2);
    ??????????????? i += oLength;
    ??????????? }
    ?
    ??????????? buf.append(line2, j, line2.length - j);
    ??????????? count[0] = counter;
    ??????????? return buf.toString();
    ??????? } else
    ??????? {
    ??????????? return line;
    ??????? }
    ??? }
    ?
    ??? public static final boolean hasBadwordsIgnoreCase(String line, String oldString)
    ??? {
    ??????? if(line == null)
    ??????????? return false;
    ??????? String lcLine = line.toLowerCase();
    ??????? String lcOldString = oldString.toLowerCase();
    ??????? int i = 0;
    ??????? if((i = lcLine.indexOf(lcOldString, i)) >= 0)
    ??????? {
    ??????????? return true;
    ??????? } else
    ??????? {
    ??????????? return false;
    ??????? }
    ??? }
    ?
    ??? public static final String stripTags(String in)
    ??? {
    ??????? if(in == null)
    ??????????? return null;
    ??????? else
    ??????????? return stripTags(in, false);
    ??? }
    ?
    ??? public static final String stripTags(String in, boolean stripBRTag)
    ??? {
    ??????? 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 > '>')
    ??????????????? continue;
    ??????????? if(ch == '<')
    ??????????? {
    ??????????????? if(!stripBRTag && i + 3 < len && input[i + 1] == 'b' && input[i + 2] == 'r' && input[i + 3] == '>')
    ??????????????? {
    ??????????????????? i += 3;
    ??????????????????? continue;
    ??????????????? }
    ??????????????? if(i > last)
    ??????????????? {
    ??????????????????? if(last > 0)
    ??????????????????????? out.append(" ");
    ??????????????????? out.append(input, last, i - last);
    ??????????????? }
    ??????????????? last = i + 1;
    ??????????????? continue;
    ??????????? }
    ??????????? if(ch == '>')
    ??????????????? last = i + 1;
    ??????? }
    ?
    ??????? if(last == 0)
    ??????????? return in;
    ??????? if(i > last)
    ??????????? out.append(input, last, i - last);
    ??????? return out.toString();
    ??? }
    ?
    ??? 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 > '>')
    ??????????????? continue;
    ??????????? if(ch == '<')
    ??????????? {
    ??????????????? if(i > last)
    ??????????????????? out.append(input, last, i - last);
    ??????????????? last = i + 1;
    ??????????????? out.append(LT_ENCODE);
    ??????????????? continue;
    ??????????? }
    ??????????? if(ch == '>')
    ??????????? {
    ??????????????? if(i > last)
    ??????????????????? out.append(input, last, i - last);
    ??????????????? last = i + 1;
    ??????????????? out.append(GT_ENCODE);
    ??????????????? continue;
    ??????????? }
    ??????????? if(ch != '"')
    ??????????????? continue;
    ??????????? if(i > last)
    ??????????????? out.append(input, last, i - last);
    ??????????? last = i + 1;
    ??????????? out.append(QUOTE_ENCODE);
    ??????? }
    ?
    ??????? if(last == 0)
    ??????????? return in;
    ??????? if(i > last)
    ??????????? out.append(input, last, i - last);
    ??????? return out.toString();
    ??? }
    ?
    ??? public static final synchronized String hash(String data)
    ??? {
    ??????? if(digest == null)
    ??????????? try
    ??????????? {
    ??????????????? digest = MessageDigest.getInstance("MD5");
    ??????????? }
    ??????????? catch(NoSuchAlgorithmException nsae)
    ??????????? {
    ??????????????? //Log.error(e);
    ??????????? }
    ??????? try
    ??????? {
    ??????????? digest.update(data.getBytes("utf-8"));
    ??????? }
    ??????? catch(UnsupportedEncodingException e)
    ??????? {
    ??????????? //Log.error(e);
    ??????? }
    ??????? return encodeHex(digest.digest());
    ??? }
    ?
    ??? 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();
    ??? }
    ?
    ??? 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;
    ??? }
    ?
    ??? 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;
    ??????? }
    ??? }
    ?
    ??? public static String encodeBase64(String data)
    ??? {
    ??????? byte bytes[] = null;
    ??????? try
    ??????? {
    ??????????? bytes = data.getBytes("UTF-8");
    ??????? }
    ??????? catch(UnsupportedEncodingException uee)
    ??????? {
    ??????????? //Log.error(uee);
    ??????? }
    ??????? return encodeBase64(bytes);
    ??? }
    ?
    ??? public static String decodeBase64(String data)
    ??? {
    ??????? byte[] bytes = null;
    ??????? try {
    ????????? bytes = data.getBytes("UTF-8");
    ????????? return new String(decodeBase64(bytes), "UTF-8");
    ??????? }
    ??????? catch (UnsupportedEncodingException ex) {
    ??????? }
    ??????? return "";
    ??? }
    ?
    ??? public static String encodeBase64(byte data[])
    ??? {
    ??????? boolean lineSep = false;
    ??????? int sLen = data == null ? 0 : data.length;
    ??????? if(sLen == 0)
    ??????????? return new String("");
    ??????? int eLen = (sLen / 3) * 3;
    ??????? int cCnt = (sLen - 1) / 3 + 1 << 2;
    ??????? int dLen = cCnt + (lineSep ? (cCnt - 1) / 76 << 1 : 0);
    ??????? char dArr[] = new char[dLen];
    ??????? int s = 0;
    ??????? int d = 0;
    ??????? int cc = 0;
    ??????? do
    ??????? {
    ??????????? if(s >= eLen)
    ??????????????? break;
    ??????????? int i = (data[s++] & 0xff) << 16 | (data[s++] & 0xff) << 8 | data[s++] & 0xff;
    ??????????? dArr[d++] = CA[i >>> 18 & 0x3f];
    ??????????? dArr[d++] = CA[i >>> 12 & 0x3f];
    ??????????? dArr[d++] = CA[i >>> 6 & 0x3f];
    ??????????? dArr[d++] = CA[i & 0x3f];
    ??????????? if(lineSep && ++cc == 19 && d < dLen - 2)
    ??????????? {
    ??????????????? dArr[d++] = '\r';
    ??????????????? dArr[d++] = '\n';
    ??????????????? cc = 0;
    ??????????? }
    ??????? } while(true);
    ??????? int left = sLen - eLen;
    ??????? if(left > 0)
    ??????? {
    ??????????? int i = (data[eLen] & 0xff) << 10 | (left != 2 ? 0 : (data[sLen - 1] & 0xff) << 2);
    ??????????? dArr[dLen - 4] = CA[i >> 12];
    ??????????? dArr[dLen - 3] = CA[i >>> 6 & 0x3f];
    ??????????? dArr[dLen - 2] = left != 2 ? '=' : CA[i & 0x3f];
    ??????????? dArr[dLen - 1] = '=';
    ??????? }
    ??????? return new String(dArr);
    ??? }
    ?
    ??? public static final byte[] decodeBase64(byte bytes[])
    ??? {
    ??????? int sLen = bytes.length;
    ??????? int sepCnt = 0;
    ??????? for(int i = 0; i < sLen; i++)
    ??????????? if(IA[bytes[i] & 0xff] < 0)
    ??????????????? sepCnt++;
    ?
    ??????? if((sLen - sepCnt) % 4 != 0)
    ??????????? return null;
    ??????? int pad = 0;
    ??????? int i = sLen;
    ??????? do
    ??????? {
    ??????????? if(i <= 1 || IA[bytes[--i] & 0xff] > 0)
    ??????????????? break;
    ??????????? if(bytes[i] == 61)
    ??????????????? pad++;
    ??????? } while(true);
    ??????? int len = ((sLen - sepCnt) * 6 >> 3) - pad;
    ??????? byte dArr[] = new byte[len];
    ??????? int s = 0;
    ??????? int d = 0;
    ??????? do
    ??????? {
    ??????????? if(d >= len)
    ??????????????? break;
    ??????????? i = 0;
    ??????????? for(int j = 0; j < 4; j++)
    ??????????? {
    ??????????????? int c = IA[bytes[s++] & 0xff];
    ??????????????? if(c >= 0)
    ??????????????????? i |= c << 18 - j * 6;
    ??????????????? else
    ??????????????????? j--;
    ??????????? }
    ?
    ??????????? dArr[d++] = (byte)(i >> 16);
    ??????????? if(d < len)
    ??????????? {
    ??????????????? dArr[d++] = (byte)(i >> 8);
    ??????????????? if(d < len)
    ??????????????????? dArr[d++] = (byte)i;
    ??????????? }
    ??????? } while(true);
    ??????? return dArr;
    ??? }
    ?
    ??? public static String URLEncode(String original, String charset)
    ??????? throws UnsupportedEncodingException
    ??? {
    ??????? if(original == null)
    ??????????? return null;
    ??????? byte octets[];
    ??????? try
    ??????? {
    ??????????? octets = original.getBytes(charset);
    ??????? }
    ??????? catch(UnsupportedEncodingException error)
    ??????? {
    ??????????? throw new UnsupportedEncodingException();
    ??????? }
    ??????? StringBuffer buf = new StringBuffer(octets.length);
    ??????? for(int i = 0; i < octets.length; i++)
    ??????? {
    ??????????? char c = (char)octets[i];
    ??????????? if(allowed_query.get(c))
    ??????????? {
    ??????????????? buf.append(c);
    ??????????? } else
    ??????????? {
    ??????????????? buf.append('%');
    ??????????????? byte b = octets[i];
    ??????????????? char hexadecimal = Character.forDigit(b >> 4 & 0xf, 16);
    ??????????????? buf.append(Character.toUpperCase(hexadecimal));
    ??????????????? hexadecimal = Character.forDigit(b & 0xf, 16);
    ??????????????? buf.append(Character.toUpperCase(hexadecimal));
    ??????????? }
    ??????? }
    ?
    ??????? return buf.toString();
    ??? }
    ?
    ??? public static final String[] toLowerCaseWordArray(String text)
    ??? {
    ??????? if(text == null || text.length() == 0)
    ??????????? return new String[0];
    ??????? ArrayList wordList = new ArrayList();
    ??????? 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()]);
    ??? }
    ?
    ??? 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);
    ??? }
    ?
    ??? public static final int randomInt(int number)
    ??? {
    ??????? if(number>0)
    ??????????? return randGen.nextInt(number)+1;
    ??????? else
    ??????????? return 1;
    ??? }
    ?
    ??? public static final String chop(String string, int length)
    ??? {
    ??????? if(string == null)
    ??????????? return null;
    ??????? if(length <= 0)
    ??????????? throw new IllegalArgumentException("Length must be > 0");
    ??????? if(string.length() <= length + 2)
    ??????? {
    ??????????? return string;
    ??????? } else
    ??????? {
    ??????????? StringBuffer buf = new StringBuffer(string.substring(0, length));
    ??????????? buf.append("...");
    ??????????? return buf.toString();
    ??????? }
    ??? }
    ?
    ??? public static final String chopAtWord(String string, int length, int minLength)
    ??? {
    ??????? if(length < 2)
    ??????????? throw new IllegalArgumentException("Length specified (" + length + ") must be > 2");
    ??????? if(minLength >= length)
    ??????????? throw new IllegalArgumentException("minLength must be smaller than length");
    ??????? int sLength = string != null ? string.length() : -1;
    ??????? if(sLength < 1)
    ??????????? return string;
    ??????? if(minLength != -1 && sLength < minLength)
    ??????????? return string;
    ??????? if(minLength == -1 && sLength < length)
    ??????????? return string;
    ??????? char charArray[] = string.toCharArray();
    ??????? if(sLength > length)
    ??????? {
    ??????????? 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);
    ??????????? for(int i = sLength - 1; i > 0; i--)
    ??????????????? if(charArray[i] == ' ')
    ??????????????????? return string.substring(0, i).trim();
    ?
    ??????? } else
    ??????? if(minLength != -1 && sLength > minLength)
    ??????? {
    ??????????? for(int i = 0; i < minLength; i++)
    ??????????????? if(charArray[i] == ' ')
    ??????????????????? return string;
    ?
    ??????? }
    ??????? if(minLength > -1 && minLength <= string.length())
    ??????????? return string.substring(0, minLength);
    ??????? else
    ??????????? return string.substring(0, length);
    ??? }
    ?
    ??? public static final String chopAtWord(String string, int length)
    ??? {
    ??????? return chopAtWord(string, length, -1);
    ??? }
    ?
    ??? public static String chopAtWordsAround(String input, String wordList[], int numChars)
    ??? {
    ??????? if(input == null || "".equals(input.trim()) || wordList == null || wordList.length == 0 || numChars == 0)
    ??????????? return "";
    ??????? 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 ? input.length() : 200);
    ??? }
    ?
    ??? 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();
    ??????? regexp.append("(?i)\\b(");
    ??????? for(int x = 0; x < words.length; x++)
    ??????? {
    ??????????? words[x] = words[x].replaceAll("([\\$\\?\\|\\/\\.])", "\\\\$1");
    ??????????? regexp.append(words[x]);
    ??????????? if(x != words.length - 1)
    ??????????????? regexp.append("|");
    ??????? }
    ?
    ??????? regexp.append(")");
    ??????? return string.replaceAll(regexp.toString(), startHighlight + "$1" + endHighlight);
    ??? }
    ?
    ??? public static final String escapeForSQL(String string)
    ??? {
    ??????? if(string == null)
    ??????????? return null;
    ??????? if(string.length() == 0)
    ??????????? return string;
    ??????? char input[] = string.toCharArray();
    ??????? int i = 0;
    ??????? int last = 0;
    ??????? int len = input.length;
    ??????? StringBuffer out = null;
    ??????? for(; i < len; i++)
    ??????? {
    ??????????? char ch = input[i];
    ??????????? if(ch != '\'')
    ??????????????? continue;
    ??????????? if(out == null)
    ??????????????? out = new StringBuffer(len + 2);
    ??????????? if(i > last)
    ??????????????? out.append(input, last, i - last);
    ??????????? last = i + 1;
    ??????????? out.append('\'').append('\'');
    ??????? }
    ?
    ??????? if(out == null)
    ??????????? return string;
    ??????? if(i > last)
    ??????????? out.append(input, last, i - last);
    ??????? return out.toString();
    ??? }
    ?
    ??? 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 > '>')
    ??????????????? continue;
    ??????????? if(ch == '<')
    ??????????? {
    ??????????????? if(i > last)
    ??????????????????? out.append(input, last, i - last);
    ??????????????? last = i + 1;
    ??????????????? out.append(LT_ENCODE);
    ??????????????? continue;
    ??????????? }
    ??????????? if(ch == '>')
    ??????????? {
    ??????????????? if(i > last)
    ??????????????????? out.append(input, last, i - last);
    ??????????????? last = i + 1;
    ??????????????? out.append(GT_ENCODE);
    ??????????????? continue;
    ??????????? }
    ??????????? if(ch == '&')
    ??????????? {
    ??????????????? if(i > last)
    ??????????????????? out.append(input, last, i - last);
    ??????????????? last = i + 1;
    ??????????????? out.append(AMP_ENCODE);
    ??????????????? continue;
    ??????????? }
    ??????????? if(ch == '"')
    ??????????? {
    ??????????????? if(i > last)
    ??????????????????? out.append(input, last, i - last);
    ??????????????? last = i + 1;
    ??????????????? out.append(QUOTE_ENCODE);
    ??????????????? continue;
    ??????????? }
    ??????????? if(ch == '\n' || ch == '\r' || ch == '\t' || ch >= ' ')
    ??????????????? continue;
    ??????????? 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();
    ??? }
    ?
    ??? public static final String unescapeFromXML(String string)
    ??? {
    ??????? string = replace(string, "<", "<");
    ??????? string = replace(string, ">", ">");
    ??????? string = replace(string, """, "\"");
    ??????? return replace(string, "&", "&");
    ??? }
    ?
    ??? 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()).append(string);
    ??????????? return buf.toString();
    ??????? }
    ??? }
    ?
    ??? public static final String Encode(String input,String encode){
    ????? if(input==null || "".equals(input)) return input;
    ????? try {
    ??????? return new String(input.getBytes("iso-8859-1"), encode);
    ????? }
    ????? catch (UnsupportedEncodingException ex) {
    ??????? return "";
    ????? }
    ??? }
    ?
    ??? public static final String getFileExtName(String filename)
    ??? {
    ??????? String ext = "";
    ??????? int p = filename.lastIndexOf(".");
    ??????? if (p != -1)
    ??????? {
    ??????????? ext = filename.substring(p + 1, filename.length());
    ??????? }
    ??????? return ext.toLowerCase();
    ??? }
    ?
    ??? public static final String getPath(long id)
    ??? {
    ??????? String returnStr = "";
    ??????? char charArray[] = String.valueOf(id).toCharArray();
    ??????? int j = charArray.length;
    ??????? for (int i = 0; i < j; i++)
    ??????? {
    ??????????? returnStr += charArray[i] + File.separator;
    ??????? }
    ??????? return returnStr;
    ??? }
    ?
    ??? public static final String getUrlPath(long id)
    ??? {
    ??????? String returnStr = "";
    ??????? char charArray[] = String.valueOf(id).toCharArray();
    ??????? int j = charArray.length;
    ??????? for (int i = 0; i < j; i++)
    ??????? {
    ??????????? returnStr += charArray[i] + "/";
    ??????? }
    ??????? return returnStr;
    ??? }
    ?
    ??? public static final String dateToMillis(Date date)
    ??? {
    ????? return "";
    ??????? /*if(ConnectionManager.getDateType() == 12)
    ??????????? return zeroPadString(Long.toString(date.getTime()), 15);
    ??????? else
    ??????????? return Long.toString(date.getTime());*/
    ??? }
    ?
    ??? /**
    ???? * @param len 需要顯示的長度(<font color="red">注意:長度是以byte為單位的,一個漢字是2個byte</font>)
    ???? * @param symbol 用于表示省略的信息的字符,如“...”,“>>>”等。
    ???? * @return 返回處理后的字符串
    ???? */
    ??? public static String getLimitLengthString(String str,int len, String symbol) throws
    ??????????? UnsupportedEncodingException
    ??? {
    ??????? if(str==null || "".equals(str)) return str;
    ??????? int counterOfDoubleByte;
    ??????? byte b[];
    ??????? counterOfDoubleByte = 0;
    ??????? b = str.getBytes("GBK");
    ??????? if (b.length <= len)
    ??????????? return str;
    ??????? for (int i = 0; i < len; i++)
    ??????? {
    ??????????? if (b[i] < 0)
    ??????????????? counterOfDoubleByte++;
    ??????? }
    ?
    ??????? if (counterOfDoubleByte % 2 == 0)
    ??????????? return new String(b, 0, len, "GBK") + symbol;
    ??????? else
    ??????????? return new String(b, 0, len - 1, "GBK") + symbol;
    ??? }
    ?
    ?
    ??? public static boolean isValidEmailAddress(String addr)
    ??? {
    ??????? if(addr == null)
    ??????????? return false;
    ??????? addr = addr.trim();
    ??????? if(addr.length() == 0)
    ??????????? return false;
    ??????? Matcher matcher = basicAddressPattern.matcher(addr);
    ??????? if(!matcher.matches())
    ??????????? return false;
    ??????? String userPart = matcher.group(1);
    ??????? String domainPart = matcher.group(2);
    ??????? matcher = validUserPattern.matcher(userPart);
    ??????? if(!matcher.matches())
    ??????????? return false;
    ??????? matcher = ipDomainPattern.matcher(domainPart);
    ??????? if(matcher.matches())
    ??????? {
    ??????????? for(int i = 1; i < 5; i++)
    ??????????? {
    ??????????????? String num = matcher.group(i);
    ??????????????? if(num == null)
    ??????????????????? return false;
    ??????????????? if(Integer.parseInt(num) > 254)
    ??????????????????? return false;
    ??????????? }
    ?
    ??????????? return true;
    ??????? }
    ??????? matcher = domainPattern.matcher(domainPart);
    ??????? if(matcher.matches())
    ??????? {
    ??????????? String tld = matcher.group(matcher.groupCount());
    ??????????? matcher = tldPattern.matcher(tld);
    ??????????? return tld.length() == 3 || matcher.matches();
    ??????? } else
    ??????? {
    ??????????? return false;
    ??????? }
    ??? }
    ?
    ??? /**
    ???? * 判斷是否為數字組成的字串
    ???? * @param validString 要判斷的字符串
    ???? * @return boolen值,true或false
    ???? */
    ??? public static boolean isNumber(String validString){
    ????? try
    ????? {
    ??????? if (validString == null)
    ????????? return false;
    ??????? byte[] tempbyte = validString.getBytes();
    ??????? for (int i = 0; i < validString.length(); i++) {
    ????????? //by=tempbyte[i];
    ????????? if ( (tempbyte[i] < 48) || (tempbyte[i] > 57)) {
    ??????????? return false;
    ????????? }
    ??????? }
    ??????? return true;
    ????? }
    ????? catch(Exception ex)
    ????? {
    ??????? return false;
    ????? }
    ? }
    ?
    ??? 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 Pattern basicAddressPattern;
    ??? private static Pattern validUserPattern;
    ??? private static Pattern domainPattern;
    ??? private static Pattern ipDomainPattern;
    ??? private static Pattern tldPattern;
    ??? private static MessageDigest digest = null;
    ??? private static final char CA[];
    ??? private static final int IA[];
    ??? private static final BitSet allowed_query;
    ??? private static Random randGen = new Random();
    ??? private static char numbersAndLetters[] = "0123456789abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
    ??? private static final char zeroArray[] = "0000000000000000000000000000000000000000000000000000000000000000".toCharArray();
    ??? private static MD5 md5 = new MD5();
    ?
    ??? static
    ??? {
    ??????? String basicAddress = "^([\\w\\.-]+)@([\\w\\.-]+)$";
    ??????? String specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    ??????? String validChars = "[^ \f\n\r\t" + specialChars + "]";
    ??????? String atom = validChars + "+";
    ??????? String quotedUser = "(\"[^\"]+\")";
    ??????? String word = "(" + atom + "|" + quotedUser + ")";
    ??????? String validUser = "^" + word + "(\\." + word + ")*$";
    ??????? String domain = "^" + atom + "(\\." + atom + ")+$";
    ??????? String ipDomain = "^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$";
    ??????? String knownTLDs = "^\\.(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$";
    ??????? basicAddressPattern = Pattern.compile(basicAddress, 2);
    ??????? validUserPattern = Pattern.compile(validUser, 2);
    ??????? domainPattern = Pattern.compile(domain, 2);
    ??????? ipDomainPattern = Pattern.compile(ipDomain, 2);
    ??????? tldPattern = Pattern.compile(knownTLDs, 2);
    ??????? CA = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();
    ??????? IA = new int[256];
    ??????? Arrays.fill(IA, -1);
    ??????? int i = 0;
    ??????? for(int iS = CA.length; i < iS; i++)
    ??????????? IA[CA[i]] = i;
    ?
    ??????? IA[61] = 0;
    ??????? allowed_query = new BitSet(256);
    ??????? for(i = 48; i <= 57; i++)
    ??????????? allowed_query.set(i);
    ?
    ??????? for(i = 97; i <= 122; i++)
    ??????????? allowed_query.set(i);
    ?
    ??????? for(i = 65; i <= 90; i++)
    ??????????? allowed_query.set(i);
    ?
    ??????? allowed_query.set(45);
    ??????? allowed_query.set(95);
    ??????? allowed_query.set(46);
    ??????? allowed_query.set(33);
    ??????? allowed_query.set(126);
    ??????? allowed_query.set(42);
    ??????? allowed_query.set(39);
    ??????? allowed_query.set(40);
    ??????? allowed_query.set(41);
    ?
    ?
    ??? }
    }

    posted on 2006-10-11 17:11 無聲 閱讀(637) 評論(0)  編輯  收藏 所屬分類: java共享代碼

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 精品国产亚洲男女在线线电影| 久久噜噜噜久久亚洲va久| h视频免费高清在线观看| 亚洲韩国精品无码一区二区三区| 久久久久久AV无码免费网站下载| 亚洲人成网站日本片| 日韩a在线观看免费观看| 国产一级a毛一级a看免费人娇| 亚洲一级二级三级不卡| 欧洲美熟女乱又伦免费视频| 中国性猛交xxxxx免费看| wwwxxx亚洲| 亚洲人成无码网站| 黄网址在线永久免费观看 | 久久久久免费精品国产小说| 亚洲人成网站18禁止| 亚洲国产三级在线观看| 久久久久国产精品免费免费搜索 | 亚洲AV日韩AV一区二区三曲| 国产精品亚洲A∨天堂不卡| 四虎成人免费观看在线网址| 成人免费区一区二区三区 | 亚洲xxxx视频| 亚洲第一AAAAA片| 免费观看午夜在线欧差毛片| 67194成手机免费观看| 一二三区免费视频| 久久夜色精品国产噜噜亚洲a| 国产亚洲综合久久系列| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 亚洲精品一二三区| 亚洲成AV人片在线观看| 亚洲av午夜精品一区二区三区| 四虎在线最新永久免费| 成人性生交大片免费看中文| 黄页网址在线免费观看| 国产人成亚洲第一网站在线播放| 亚洲天堂中文字幕| 国产精品亚洲A∨天堂不卡| 亚洲色婷婷综合开心网| 四虎国产精品免费视|