亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩电影一二三区| 久久久久久久久久久久久夜| 亚洲精品成人在线| 欧美影院午夜播放| 午夜久久电影网| 日韩欧美激情四射| 国产精品888| 成人免费一区二区三区在线观看| 色视频成人在线观看免| 日韩精品亚洲一区| 国产丝袜美腿一区二区三区| 北条麻妃国产九九精品视频| 亚洲一区二区三区四区在线观看 | 欧美日韩成人综合在线一区二区| 亚洲v中文字幕| 欧美mv和日韩mv的网站| 成人av电影在线观看| 亚洲精品乱码久久久久久黑人| 欧美系列日韩一区| 欧美色手机在线观看| 日韩av午夜在线观看| 国产日韩影视精品| 欧洲精品一区二区三区在线观看| 蜜臀av一区二区在线观看| 欧美激情一区二区三区四区| 欧美亚洲综合在线| 国产成人av电影在线| 一区二区三区不卡视频| 亚洲精品一区二区三区四区高清| 91在线视频播放地址| 免费在线观看视频一区| 成人免费在线观看入口| 精品国产成人系列| 欧美在线一二三| 国产美女精品一区二区三区| 亚洲成a人片在线观看中文| 国产日韩欧美综合在线| 欧美精品vⅰdeose4hd| 成人高清免费观看| 免播放器亚洲一区| 亚洲欧美日韩中文播放| 久久一区二区三区国产精品| 欧美狂野另类xxxxoooo| 成人av电影免费在线播放| 天天综合色天天综合色h| 欧美国产激情二区三区| 日韩一级片网址| 在线观看91视频| 白白色 亚洲乱淫| 国产综合一区二区| 五月婷婷欧美视频| 亚洲欧美激情在线| 一区精品在线播放| 久久九九99视频| 欧美刺激午夜性久久久久久久| 色综合色综合色综合色综合色综合| 精品一区二区三区日韩| 首页欧美精品中文字幕| 一区二区三区欧美日| 17c精品麻豆一区二区免费| 亚洲国产精品二十页| 久久亚洲免费视频| 欧美成人欧美edvon| 日韩一二三区不卡| 在线播放中文一区| 欧美日韩国产大片| 91国产丝袜在线播放| 色94色欧美sute亚洲线路一久| 国产精品一二三| 国产馆精品极品| 国产成人高清视频| 国产成人亚洲综合a∨猫咪| 国产综合久久久久久鬼色| 激情图片小说一区| 国产一区二区三区高清播放| 精品一区精品二区高清| 狠狠色狠狠色综合系列| 精品一区二区三区av| 激情五月婷婷综合| 国产成人av影院| 99久久99久久免费精品蜜臀| 不卡电影一区二区三区| 成人app网站| 91豆麻精品91久久久久久| 色域天天综合网| 欧美日本一区二区在线观看| 欧美高清视频www夜色资源网| 91精品国产手机| 精品免费国产一区二区三区四区| www亚洲一区| 国产精品网站一区| 亚洲美女视频一区| 人妖欧美一区二区| 国产成人h网站| 日本乱人伦aⅴ精品| 欧美区一区二区三区| 欧美一级在线观看| 欧美激情综合在线| 亚洲国产中文字幕| 91精品国产欧美日韩| 欧美一区二区美女| 久久久国产午夜精品| 亚洲天堂免费在线观看视频| 亚洲动漫第一页| 久久www免费人成看片高清| 国产精品一区二区男女羞羞无遮挡| eeuss鲁片一区二区三区在线观看| 91丨九色丨国产丨porny| 欧美另类变人与禽xxxxx| 日韩久久精品一区| 亚洲欧洲日韩女同| 日韩成人免费电影| 成人国产一区二区三区精品| 欧美视频一二三区| 久久久欧美精品sm网站| 亚洲精品视频在线看| 蜜桃久久精品一区二区| 97国产一区二区| 日韩精品一区国产麻豆| 亚洲色图在线播放| 激情国产一区二区| 在线观看中文字幕不卡| 精品sm在线观看| 亚洲一区二区高清| 成人在线综合网站| 欧美一区二区成人| 亚洲乱码国产乱码精品精的特点| 麻豆免费精品视频| 精品视频免费在线| 国产精品区一区二区三| 日韩黄色片在线观看| 成人高清在线视频| 久久综合九色综合97_久久久 | 夜夜夜精品看看| 国产麻豆成人精品| 欧美老人xxxx18| ...av二区三区久久精品| 国内一区二区在线| 在线播放亚洲一区| 樱花影视一区二区| 成人性生交大合| 久久综合丝袜日本网| 日韩福利视频导航| 欧美性生活大片视频| 最新不卡av在线| 风流少妇一区二区| 国产亚洲欧美日韩俺去了| 美女网站色91| 欧美一区二区在线观看| 亚洲国产中文字幕| 欧美亚洲一区二区在线| 国产精品传媒入口麻豆| 丰满少妇久久久久久久| 国产喂奶挤奶一区二区三区| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩激情在线| 夜夜嗨av一区二区三区四季av| caoporm超碰国产精品| 欧美激情中文不卡| 国产电影一区二区三区| 久久久综合视频| 久久99精品久久久久久动态图| 欧美精选午夜久久久乱码6080| 一区二区三区日韩精品视频| 日本韩国精品一区二区在线观看| 国产精品午夜久久| 99精品久久只有精品| 中文字幕一区二区三区在线播放| 国产精品一区免费在线观看| 久久女同互慰一区二区三区| 国产精品99久久久久| 国产三区在线成人av| 风间由美中文字幕在线看视频国产欧美 | 在线观看一区日韩| 亚洲午夜久久久久中文字幕久| 欧美在线观看视频在线| 无码av中文一区二区三区桃花岛| 欧美丰满高潮xxxx喷水动漫| 奇米一区二区三区av| 欧美精品一区二| 成人做爰69片免费看网站| 国产精品毛片久久久久久久| 99久久夜色精品国产网站| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲精品视频观看| 欧美在线观看禁18| 免费人成在线不卡| 久久精品水蜜桃av综合天堂| 成人国产亚洲欧美成人综合网| 亚洲欧美视频在线观看视频| 欧美日韩一二区| 久久国产精品99久久久久久老狼 | 不卡视频一二三四| 亚洲乱码国产乱码精品精的特点| 欧美亚洲国产一区二区三区va| 午夜激情一区二区三区| 精品国产乱码91久久久久久网站| 国产·精品毛片| 午夜精品爽啪视频| 久久久一区二区|