亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stringutil.java

?? 這是基于 XLoadTree 的一個強大功能的展示的例子, 文件個頭也不大, 主要功能集中在 Web 前臺. 最終目標是實現一個易于使用的像 Windows 資源管理器那樣管理遠程 JSP
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/*
 * @(#)StringUtil.java	1.0 2003.11.2
 *
 * Copyright 2003 - 2006 BeanSoft Studio. All rights reserved.
 */

package beansoft.jsp;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.util.Date;

import javax.servlet.ServletContext;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;

import beansoft.util.OS;

/**
 * StringUtil, 字符串工具類, 一些方便的字符串工具方法.
 *
 * Dependencies: Servlet/JSP API.
 *
 * @author beansoft
 * @version 1.2 2006-07-31
 */
public class StringUtil {
	public static String escape(String src) {
		int i;
		char j;
		StringBuffer tmp = new StringBuffer();
		tmp.ensureCapacity(src.length() * 6);
		for (i = 0; i < src.length(); i++) {
			j = src.charAt(i);
			if (Character.isDigit(j) || Character.isLowerCase(j)
					|| Character.isUpperCase(j))
				tmp.append(j);
			else if (j < 256) {
				tmp.append("%");
				if (j < 16)
					tmp.append("0");
				tmp.append(Integer.toString(j, 16));
			} else {
				tmp.append("%u");
				tmp.append(Integer.toString(j, 16));
			}
		}
		return tmp.toString();
	}

	public static String unescape(String src) {
		StringBuffer tmp = new StringBuffer();
		tmp.ensureCapacity(src.length());
		int lastPos = 0, pos = 0;
		char ch;
		while (lastPos < src.length()) {
			pos = src.indexOf("%", lastPos);
			if (pos == lastPos) {
				if (src.charAt(pos + 1) == 'u') {
					ch = (char) Integer.parseInt(src
							.substring(pos + 2, pos + 6), 16);
					tmp.append(ch);
					lastPos = pos + 6;
				} else {
					ch = (char) Integer.parseInt(src
							.substring(pos + 1, pos + 3), 16);
					tmp.append(ch);
					lastPos = pos + 3;
				}
			} else {
				if (pos == -1) {
					tmp.append(src.substring(lastPos));
					lastPos = src.length();
				} else {
					tmp.append(src.substring(lastPos, pos));
					lastPos = pos;
				}
			}
		}
		return tmp.toString();
	}

	/**
	 * 獲取類路徑中的資源文件的物理文件路徑.
	 * NOTE: 僅在 Win32 平臺下測試通過開發.
	 * @date 2005.10.16
	 * @param resourcePath 資源路徑
	 * @return 配置文件路徑
	 */
	public static String getRealFilePath(String resourcePath) {
		java.net.URL inputURL = StringUtil.class
							.getResource(resourcePath);

		String filePath = inputURL.getFile();

		// For windows platform, the filePath will like this:
		// /E:/Push/web/WEB-INF/classes/studio/beansoft/smtp/MailSender.ini
		// So must remove the first /

		if(OS.isWindows() && filePath.startsWith("/")) {
			filePath = filePath.substring(1);
		}

		return filePath;
	}


	/**
	 * 將字符串轉換為 int.
	 *
	 * @param input
	 *            輸入的字串
	 * @date 2005-07-29
	 * @return 結果數字
	 */
	public static int parseInt(String input) {
		try {
			return Integer.parseInt(input);
		} catch (Exception e) {
			// TODO: handle exception
		}
		return 0;
	}

	/**
	 * 格式化日期到日時分秒時間格式的顯示. d日 HH:mm:ss
	 *
	 * @return - String 格式化后的時間
	 */
	public static String formatDateToDHMSString(java.util.Date date) {
		if (date == null) {
			return "";
		}

		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"d日 HH:mm:ss");

		return dateFormat.format(date);

	}

	/**
	 * 格式化日期到時分秒時間格式的顯示.
	 *
	 * @return - String 格式化后的時間
	 */
	public static String formatDateToHMSString(java.util.Date date) {
		if (date == null) {
			return "";
		}

		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"HH:mm:ss");

		return dateFormat.format(date);

	}

	/**
	 * 將時分秒時間格式的字符串轉換為日期.
	 *
	 * @param input
	 * @return
	 */
	public static Date parseHMSStringToDate(String input) {
		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"HH:mm:ss");

		try {
			return dateFormat.parse(input);
		} catch (ParseException e) {
			e.printStackTrace();
		}

		return null;
	}

	/**
	 * 格式化日期到 Mysql 數據庫日期格式字符串的顯示.
	 *
	 * @return - String 格式化后的時間
	 */
	public static String formatDateToMysqlString(java.util.Date date) {
		if (date == null) {
			return "";
		}

		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");

		return dateFormat.format(date);

	}

	/**
	 * 將 Mysql 數據庫日期格式字符串轉換為日期.
	 *
	 * @param input
	 * @return
	 */
	public static Date parseStringToMysqlDate(String input) {
		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");

		try {
			return dateFormat.parse(input);
		} catch (ParseException e) {
			e.printStackTrace();
		}

		return null;
	}

	/**
	 * 返回時間字符串, 可讀形式的, M月d日 HH:mm 格式. 2004-09-22, LiuChangjiong
	 *
	 * @return - String 格式化后的時間
	 */
	public static String formatDateToMMddHHmm(java.util.Date date) {
		if (date == null) {
			return "";
		}

		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"M月d日 HH:mm");

		return dateFormat.format(date);
	}

	/**
	 * 返回時間字符串, 可讀形式的, yy年M月d日HH:mm 格式. 2004-10-04, LiuChangjiong
	 *
	 * @return - String 格式化后的時間
	 */
	public static String formatDateToyyMMddHHmm(java.util.Date date) {
		if (date == null) {
			return "";
		}

		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"yy年M月d日HH:mm");

		return dateFormat.format(date);
	}

	/**
	 * 返回 HTTP 請求的 Referer, 如果沒有, 就返回默認頁面值.
	 *
	 * 僅用于移動博客開發頁面命名風格: // Added at 2004-10-12 // 如果前一頁面的地址包含 _action.jsp ,
	 * 為了避免鏈接出錯, 就返回默認頁面
	 *
	 * 2006-08-02 增加從 url 參數 referer 的判斷 
	 * 
	 * @param request -
	 *            HttpServletRequest 對象
	 * @param defaultPage -
	 *            String, 默認頁面
	 * @return String - Referfer
	 */
	public static String getReferer(HttpServletRequest request,
			String defaultPage) {
		String referer = request.getHeader("Referer");// 前一頁面的地址, 提交結束后返回此頁面

		// 獲取URL中的referer參數
		String refererParam = request.getParameter("referer");
		
		if(!isEmpty(refererParam)) {
			referer = refererParam;
		}
		
		// Added at 2004-10-12
		// 如果前一頁面的地址包含 _action.jsp , 為了避免鏈接出錯, 就返回默認頁面
		if (isEmpty(referer) || referer.indexOf("_action.jsp") != -1) {
			referer = defaultPage;
		}

		return referer;
	}

	/**
	 * 生成一個 18 位的 yyyyMMddHHmmss.SSS 格式的日期字符串.
	 *
	 * @param date
	 *            Date
	 * @return String
	 */
	public static String genTimeStampString(Date date) {
		java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
				"yyyyMMddHHmmss.SSS");
		return df.format(date);
	}

	/**
	 * Write the HTML base tag to support servlet forward calling relative path
	 * changed problems.
	 *
	 * Base is used to ensure that your document's relative links are associated
	 * with the proper document path. The href specifies the document's
	 * reference URL for associating relative URLs with the proper document
	 * path. This element may only be used within the HEAD tag. Example: <BASE
	 * HREF="http://www.sample.com/hello.htm">
	 *
	 * @param pageContext
	 *            the PageContext of the jsp page object
	 */
	public static void writeHtmlBase(PageContext pageContext) {
		HttpServletRequest request = (HttpServletRequest) pageContext
				.getRequest();
		StringBuffer buf = new StringBuffer("<base href=\"");
		buf.append(request.getScheme());
		buf.append("://");
		buf.append(request.getServerName());
		buf.append(":");
		buf.append(request.getServerPort());
		buf.append(request.getRequestURI());
		buf.append("\">");
		JspWriter out = pageContext.getOut();
		try {
			out.write(buf.toString());
		} catch (java.io.IOException e) {

		}
	}

	/**
	 * Get the base path of this request.
	 *
	 * @param request -
	 *            HttpServletRequest
	 * @return String - the base path, eg: http://www.abc.com:8000/someApp/
	 */
	public static String getBasePath(HttpServletRequest request) {
		String path = request.getContextPath();
		String basePath = request.getScheme() + "://" + request.getServerName()
				+ ":" + request.getServerPort() + path + "/";
		return basePath;
	}

	/**
	 * Get the current page's full path of this request. 獲取當前頁的完整訪問 URL 路徑.
	 *
	 * @author BeanSoft
	 * @date 2005-08-01
	 * @param request -
	 *            HttpServletRequest
	 * @return String - the full url path, eg:
	 *         http://www.abc.com:8000/someApp/index.jsp?param=abc
	 */
	public static String getFullRequestURL(HttpServletRequest request) {
		StringBuffer url = request.getRequestURL();
		String qString = request.getQueryString();

		if (qString != null) {
			url.append('?');
			url.append(qString);
		}

		return url.toString();
	}

	/**
	 * Get the current page's full path of this request. 獲取當前頁的完整訪問 URI 路徑.
	 *
	 * @author BeanSoft
	 * @date 2005-08-01
	 * @param request -
	 *            HttpServletRequest
	 * @return String - the full uri path, eg: /someApp/index.jsp?param=abc
	 */
	public static String getFullRequestURI(HttpServletRequest request) {
		StringBuffer url = new StringBuffer(request.getRequestURI());
		String qString = request.getQueryString();

		if (qString != null) {
			url.append('?');
			url.append(qString);
		}

		return url.toString();
	}

	// ------------------------------------ 字符串處理方法
	// ----------------------------------------------

	/**
	 * 將字符串 source 中的 oldStr 替換為 newStr, 并以大小寫敏感方式進行查找
	 *
	 * @param source
	 *            需要替換的源字符串
	 * @param oldStr
	 *            需要被替換的老字符串
	 * @param newStr
	 *            替換為的新字符串
	 */
	public static String replace(String source, String oldStr, String newStr) {
		return replace(source, oldStr, newStr, true);
	}

	/**
	 * 將字符串 source 中的 oldStr 替換為 newStr, matchCase 為是否設置大小寫敏感查找
	 *
	 * @param source
	 *            需要替換的源字符串
	 * @param oldStr
	 *            需要被替換的老字符串
	 * @param newStr
	 *            替換為的新字符串
	 * @param matchCase
	 *            是否需要按照大小寫敏感方式查找
	 */
	public static String replace(String source, String oldStr, String newStr,
			boolean matchCase) {
		if (source == null) {
			return null;
		}
		// 首先檢查舊字符串是否存在, 不存在就不進行替換
		if (source.toLowerCase().indexOf(oldStr.toLowerCase()) == -1) {
			return source;
		}
		int findStartPos = 0;
		int a = 0;
		while (a > -1) {
			int b = 0;
			String str1, str2, str3, str4, strA, strB;
			str1 = source;
			str2 = str1.toLowerCase();
			str3 = oldStr;
			str4 = str3.toLowerCase();
			if (matchCase) {
				strA = str1;
				strB = str3;
			} else {
				strA = str2;
				strB = str4;
			}
			a = strA.indexOf(strB, findStartPos);
			if (a > -1) {
				b = oldStr.length();
				findStartPos = a + b;
				StringBuffer bbuf = new StringBuffer(source);
				source = bbuf.replace(a, a + b, newStr) + "";
				// 新的查找開始點位于替換后的字符串的結尾
				findStartPos = findStartPos + newStr.length() - b;
			}
		}
		return source;
	}

	/**
	 * 清除字符串結尾的空格.
	 *
	 * @param input
	 *            String 輸入的字符串
	 * @return 轉換結果
	 */
	public static String trimTailSpaces(String input) {
		if (isEmpty(input)) {
			return "";
		}

		String trimedString = input.trim();

		if (trimedString.length() == input.length()) {
			return input;
		}

		return input.substring(0, input.indexOf(trimedString)
				+ trimedString.length());
	}

	/**
	 * Change the null string value to "", if not null, then return it self, use
	 * this to avoid display a null string to "null".
	 *
	 * @param input
	 *            the string to clear
	 * @return the result
	 */
	public static String clearNull(String input) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产伦理网| 韩国毛片一区二区三区| 91免费国产在线| 亚洲精品国产高清久久伦理二区| gogo大胆日本视频一区| 亚洲精品国产无套在线观| 欧美日韩亚洲另类| 日本三级韩国三级欧美三级| 精品裸体舞一区二区三区| 国产剧情av麻豆香蕉精品| 中文字幕欧美三区| 91女神在线视频| 无码av中文一区二区三区桃花岛| 日韩一区二区电影网| 国产精品亚洲专一区二区三区 | 国产精品久久久久久久蜜臀| 成人小视频免费观看| 亚洲激情自拍视频| 精品乱码亚洲一区二区不卡| 粉嫩av一区二区三区| 一区二区三区四区不卡视频| 欧美日韩一区成人| 国产成人无遮挡在线视频| 亚洲精品视频在线看| 7777精品久久久大香线蕉| 国产精品综合av一区二区国产馆| 国产精品女人毛片| 欧美日韩国产高清一区二区三区| 国模套图日韩精品一区二区| 一区在线播放视频| 欧美一级夜夜爽| 成人av在线资源| 日韩福利电影在线观看| 国产精品毛片大码女人| 欧美色视频在线| 丁香婷婷综合网| 日韩高清不卡一区二区三区| 国产精品精品国产色婷婷| 91精品国产黑色紧身裤美女| 风间由美性色一区二区三区| 日本欧美加勒比视频| 亚洲日本在线看| 精品播放一区二区| 欧美日韩在线播放三区四区| 波多野结衣的一区二区三区| 麻豆精品视频在线观看免费| 亚洲黄色片在线观看| 久久精品一级爱片| 91精品国产色综合久久不卡蜜臀| 91欧美一区二区| 国产精品一区二区你懂的| 午夜欧美电影在线观看| 最近日韩中文字幕| 国产日韩三级在线| 精品国精品国产尤物美女| 欧美日本乱大交xxxxx| 91在线精品秘密一区二区| 国产米奇在线777精品观看| 日韩高清中文字幕一区| 亚洲成av人**亚洲成av**| 国产精品国产三级国产普通话三级| 日韩午夜在线观看视频| 欧美精品精品一区| 91福利视频网站| 一本色道久久综合狠狠躁的推荐 | 国产精品热久久久久夜色精品三区| 91精品国产综合久久精品麻豆| 91麻豆国产福利在线观看| 成人一级片网址| 成人综合在线视频| 国产成人无遮挡在线视频| 国产成人丝袜美腿| 成人黄色软件下载| 成人一级视频在线观看| 懂色av一区二区三区免费观看 | 成人丝袜高跟foot| 国产a精品视频| 成人激情午夜影院| 成人av在线播放网址| 成人教育av在线| 91网站最新地址| 日本国产一区二区| 欧美性受xxxx黑人xyx性爽| 欧美性xxxxxxxx| 欧美精品久久一区| 欧美变态tickle挠乳网站| 久久免费视频色| 国产日韩在线不卡| 日韩毛片高清在线播放| 亚洲另类在线视频| 亚洲成人tv网| 美女免费视频一区二区| 激情综合一区二区三区| 国产a区久久久| 91麻豆免费看片| 欧美三级日韩在线| 日韩免费成人网| 国产无人区一区二区三区| 亚洲同性gay激情无套| 一区二区三区欧美日| 日本中文一区二区三区| 国产一区二区美女| 91网站黄www| 欧美高清hd18日本| 欧美精品一区二区三区视频| 中文字幕国产一区| 一区二区三区欧美在线观看| 蜜臀av国产精品久久久久| 国产成人精品免费在线| 91老司机福利 在线| 91精品国产一区二区三区蜜臀| 久久九九久久九九| 亚洲精品国产成人久久av盗摄| 视频在线观看91| 丁香婷婷综合色啪| 欧美日韩aaa| 国产精品婷婷午夜在线观看| 亚洲一级二级三级在线免费观看| 精品一区二区三区在线播放视频| 成人听书哪个软件好| 7777精品伊人久久久大香线蕉的| 久久久久久97三级| 亚洲第一成年网| 国产成人av电影在线| 欧美日韩亚洲综合在线 | 午夜视频一区二区三区| 亚洲人成精品久久久久| 亚洲国产精品人人做人人爽| 久久精品国产亚洲高清剧情介绍| 成人免费高清视频在线观看| 欧美在线观看一二区| 亚洲综合免费观看高清完整版| 极品少妇xxxx精品少妇偷拍| 91福利国产成人精品照片| 久久久www成人免费无遮挡大片| 亚洲一区二区在线观看视频| 国产美女在线观看一区| 欧美精品日韩精品| 中文字幕日韩av资源站| 国产在线精品一区二区不卡了| 91久久国产最好的精华液| 久久久久久久免费视频了| 亚洲成人av一区二区三区| av在线免费不卡| 久久久久久日产精品| 日韩综合小视频| 在线看一区二区| 中文字幕在线不卡一区二区三区 | 日韩av成人高清| 欧美在线免费播放| 亚洲少妇30p| 高清成人在线观看| 精品少妇一区二区三区在线播放| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲1区2区3区4区| 色成人在线视频| 亚洲欧美中日韩| 成人99免费视频| 国产女主播一区| 国产激情一区二区三区四区| 欧美xfplay| 久久成人麻豆午夜电影| 欧美一区二区三区白人| 偷窥少妇高潮呻吟av久久免费| 91久久免费观看| 亚洲欧美一区二区不卡| 99久久久国产精品| 国产精品久久久久久久蜜臀| av日韩在线网站| 国产精品国产三级国产aⅴ入口 | 国产成人免费xxxxxxxx| 国产欧美日韩在线看| 成人自拍视频在线| 中文在线一区二区| 波多野结衣视频一区| 亚洲欧洲av一区二区三区久久| 99久久久久免费精品国产| 国产精品超碰97尤物18| av高清久久久| 一区二区三区电影在线播| 日本韩国欧美国产| 日本韩国精品在线| 同产精品九九九| 日韩欧美视频在线| 国产一区二区三区在线观看免费视频 | 福利电影一区二区三区| 欧美国产欧美综合| 99热精品一区二区| 亚洲综合网站在线观看| 欧美日韩国产在线播放网站| 美国十次了思思久久精品导航| 日韩免费观看高清完整版 | 国产精品久久久久桃色tv| 91在线观看成人| 亚洲成人一区在线| 日韩精品一区二| 成人av在线网站| 亚洲18色成人| 久久精品人人做人人爽人人| 成人av综合一区|