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

📄 stringutils.java

📁 java的共享内存管理.基于MMF设计。封装了java.nio.MappedByteBuffer.在大流量实时业务系统时
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

	/**
	 * 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, "&lt;", "<");
		string = replace(string, "&gt;", ">");
		string = replace(string, "&quot;", "\"");
		return replace(string, "&amp;", "&");
	}

	/**
	 * 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 + -