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

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

?? stringutils.java

?? 個人Blog java編寫的Blog可以直接使用!
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
    }
    
    /**
     * 大小寫無關的字符串替換策略
     * @param str
     * @param src
     * @param obj
     * @return
     */
    public static String replaceIgnoreCase(String str, String src, String obj){
    	String l_str = str.toLowerCase();
    	String l_src = src.toLowerCase();
    	int fromIdx = 0;
    	StringBuffer result = new StringBuffer();
    	do{
    		int idx = l_str.indexOf(l_src, fromIdx);
    		if(idx==-1)
    			break;
    		result.append(str.substring(fromIdx, idx));
    		result.append(obj);
    		fromIdx = idx + src.length();
    	}while(true);
    	result.append(str.substring(fromIdx));
    	return result.toString();
    }

	/**
	 * 根據漢字字符獲得筆畫數,拼音和非法字符默認為0
	 * @param charcator
	 * @return int
	 */
	public static int getStrokeCount(char charcator) {
		byte[] bytes = (String.valueOf(charcator)).getBytes();
		if (bytes == null || bytes.length > 2 || bytes.length <= 0) {
			// 錯誤引用,非合法字符
			return 0;
		}
		if (bytes.length == 1) {
			// 英文字符
			return 0;
		}
		if (bytes.length == 2) {
			// 中文字符
			int highByte = 256 + bytes[0];
			int lowByte = 256 + bytes[1];
			return getStrokeCount(highByte, lowByte);
		}

		// 未知錯誤
		return 0;
	}

	 /** 
	  * @param highByte 高位字節
	  * @param lowByte 低位字節
	  * @return int
	  */
	private static int getStrokeCount(int highByte, int lowByte) {
		if (highByte < 0xB0 || highByte > 0xF7 || lowByte < 0xA1
				|| lowByte > 0xFE) {
			// 非GB2312合法字符
			return -1;
		}
		int offset = (highByte - 0xB0) * (0xFE - 0xA0) + (lowByte - 0xA1);
		return Constants.gb2312StrokeCount[offset];
	}

	/**
	 * 該方法返回一個字符串的拼音,對于要做敏感字
	 * 檢查時應該一個字一個字來獲取其拼音以免無法
	 * 得知每個字對應的拼音。
	 * @param word
	 * @return String
	 */
	public static String getPinyin(String word) {
		String pinyin = "";
		for (int i = 0; i < word.length(); i++)
			pinyin += getPinyin2(getCode(word.charAt(i)));
		return pinyin;
	}
	/**
	 * 該方法返回一個字符的DBCS編碼值
	 * @param cc
	 * @return int
	 */
	protected static int getCode(char cc) {
		byte[] bs = String.valueOf(cc).getBytes();
		int code = (bs[0] << 8) | (bs[1] & 0x00FF);
		if(bs.length < 2)
			code = (int)cc;
		bs = null;
		return code;
	}
	/**
	 * 該方法通過DBCS的編碼值到哈希表中查詢得到對應的拼音串
	 * @param hz
	 * @return String
	 */
	protected static String getPinyin2(int hz) {
		String py = "";
		if (hz > 0 && hz < 160)
			py += hz;
		//else if (hz < -20319 || hz > -10247);
		else if (hz <= -10247 && hz >= -20319){
			PinyinCode pc = null;
			int i = Constants.pinyin.size() - 1;
			for (; i >= 0; i--) {
				pc = (PinyinCode) Constants.pinyin.get(i);
				if (pc.code <= hz)
					break;
			}
			if (i >= 0)
				py = pc.pinyin;
		}
		return py;
	}
	
    /**
     * 用戶名必須是數字或者字母的結合
     * @param username
     * @return
     */
    public static boolean isLegalUsername(String username) {
        for(int i=0;i<username.length();i++){
            char ch = username.charAt(i);
            if(!isAscii(ch)&& 
                ch != '.' &&
                ch != '_' &&
                ch != '-' &&
                ch != '+' &&
                ch != '(' &&
                ch != ')' &&
                ch != '*' &&
                ch != '^' &&
                ch != '@' &&
                ch != '%' &&
                ch != '$' &&
                ch != '#' &&
                ch != '~' &&
                ch != '-')
                return false;
        }
        return true;
    }
    
    /**
     * 判斷是否是字母和數字的結合
     * @param name
     * @return
     */
    public static boolean isAsciiOrDigit(String name){
        for(int i=0;i<name.length();i++){
            char ch = name.charAt(i);
            if(!isAscii(ch))
            	return false;
        }
        return true;
    }
    
    public static boolean isAscii(char ch){
    	return (ch >='a' && ch <='z') || (ch >='A' && ch <='Z') || (ch >='0' && ch <='9');
    }
    
    /**
     * 返回姓名的拼音首字母
     * @param username
     * @return
     */
    public static String getTxlUserPinyin(String username) {
        if(username.getBytes().length == (2 * username.length())){
            //純中文
            StringBuffer pinyin = new StringBuffer();
            for(int i=0;i<username.length();i++){
                String py = StringUtils.getPinyin(String.valueOf(username.charAt(i)));
                if(py!=null &&  py.length()>0)
                    pinyin.append(py.charAt(0));
                else
                    pinyin.append('V');
            }
            return pinyin.toString().toUpperCase();
        }
        else
        if(username.getBytes().length == username.length()){
            int len = (username.length()>3)?3:username.length();
            return username.substring(0,len).toUpperCase();
        }
        else{
            StringBuffer pinyin = new StringBuffer();
            for(int i=0;i<username.length();i++){
                char ch = username.charAt(i);
                try{
                    String py = StringUtils.getPinyin(String.valueOf(ch));
                    if(py!=null &&  py.length()>0)
                        pinyin.append(py.charAt(0));
                    else
                        pinyin.append(ch);
                }catch(ArrayIndexOutOfBoundsException e){}
                if(pinyin.length()>=3)
                    break;
            }
            return pinyin.toString().toUpperCase();
        }
        
    }

	 
}

/**
 * BASE64編碼解碼實現類
 * @author liusoft
 * created on 2002-12-19
 */
class Base64Code {


	protected static byte[] _encode_map = 
		{
		(byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G',
		(byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N',
		(byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U',
		(byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z',

		(byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g',
		(byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n',
		(byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u',
		(byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z',

		(byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', 
		(byte)'5', (byte)'6', (byte)'7', (byte)'8', (byte)'9',

		(byte)'+', (byte)'/' };
	
	protected static byte _decode_map[] = new byte[128];
	static {
		/*
		 * Fill in the decode map
		 */
		for (int i = 0; i < _encode_map.length; i++) {
			_decode_map[_encode_map[i]] = (byte)i;
		}
	}


	/**
	 * This class isn't meant to be instantiated.
	 */
	private Base64Code () 
	{

	}



	/**
	 * This method encodes the given byte[] using the Base64 encoding
	 * 
	 *
	 * @param  data the data to encode.
	 * @return the Base64 encoded <var>data</var>
	 */
	public final static byte[] encode (byte[] data) {

		if (data == null) {
			return (null);
		}

		/*
		 * Craete a buffer to hold the results
		 */
		byte dest[] = new byte[((data.length + 2) / 3) * 4];


		/*
		 * 3-byte to 4-byte conversion and 
		 * 0-63 to ascii printable conversion
		 */
		int i, j;
		int data_len = data.length - 2;
		for (i = 0, j = 0; i < data_len; i += 3) {

			dest[j++] = _encode_map[(data[i] >>> 2) & 077];
	    		dest[j++] = _encode_map[(data[i + 1] >>> 4) & 017 |
				(data[i] << 4) & 077];
	    		dest[j++] = _encode_map[(data[i + 2] >>> 6) & 003 |
				(data[i + 1] << 2) & 077];
	    		dest[j++] = _encode_map[data[i + 2] & 077];
		}
	
		if (i < data.length) {
			dest[j++] = _encode_map[(data[i] >>> 2) & 077];

			if (i < data.length-1) {
			    dest[j++] = _encode_map[(data[i + 1] >>> 4) & 017 |
				    (data[i] << 4) & 077];
			    dest[j++] = _encode_map[(data[i + 1] << 2) & 077];
	    		} else {
			    dest[j++] = _encode_map[(data[i] << 4) & 077];
			}
		}


		/*
		 * Pad with "=" characters
		 */
		for ( ; j < dest.length; j++) {
			dest[j] = (byte)'=';
		}

		return (dest);
	}


	/**
	 * This method decodes the given byte[] using the Base64 encoding
	 *
	 *
	 * @param  data the Base64 encoded data to decode.
	 * @return the decoded <var>data</var>.
	 */
	public final static byte[] decode (byte[] data) {

		if (data == null)
			return (null);

		/*
		 * Remove the padding on the end
		 */
		int ending = data.length;
		if (ending < 1) {
			return (null);
		}
		while (data[ending - 1] == '=')
			ending--;

		/*
		 * Create a buffer to hold the results
		 */
		byte dest[] = new byte[ending - data.length / 4];


		/*
		 * ASCII printable to 0-63 conversion
		 */
		for (int i = 0; i < data.length; i++) {
			data[i] = _decode_map[data[i]];
		}

	
		/*
		 * 4-byte to 3-byte conversion
		 */
		int i, j;
		int dest_len = dest.length - 2;
		for (i = 0, j = 0; j < dest_len; i += 4, j += 3) {
			dest[j] = (byte) (((data[i] << 2) & 255) |
			 	((data[i + 1] >>> 4) & 003));
			dest[j + 1] = (byte) (((data[i + 1] << 4) & 255) |
				((data[i + 2] >>> 2) & 017));
	    		dest[j + 2] = (byte) (((data[i + 2] << 6) & 255) |
			    (data[i + 3] & 077));
		}

		if (j < dest.length) {
			dest[j] = (byte) (((data[i] << 2) & 255) |
				((data[i + 1] >>> 4) & 003));
		}

		j++;
		if (j < dest.length) {
			dest[j] = (byte) (((data[i + 1] << 4) & 255) |
				((data[i + 2] >>> 2) & 017));
		}

		return (dest);
	}
    
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区在线| 欧美久久免费观看| 国产成人自拍在线| 激情综合五月婷婷| 国产精品一区二区久久精品爱涩| 日本午夜精品视频在线观看| 蜜臀久久99精品久久久画质超高清 | 免费在线观看日韩欧美| 蜜臀av一级做a爰片久久| 久久精品国产99国产| 精品影院一区二区久久久| 精品中文字幕一区二区| 国产精品一区二区黑丝| 成年人网站91| 欧美日韩视频专区在线播放| 91精品在线观看入口| 日韩精品一区二| 国产欧美日韩久久| 一区二区三区不卡视频| 日韩av电影天堂| 国产精品综合视频| 91久久精品午夜一区二区| 欧美午夜一区二区三区免费大片| 欧美一二三在线| 国产精品区一区二区三| 一区二区三区蜜桃网| 精品一区二区三区在线观看| youjizz久久| 日韩一区二区精品在线观看| 国产亲近乱来精品视频| 亚洲激情欧美激情| 精品一区精品二区高清| 色综合天天狠狠| 精品欧美一区二区久久| 亚洲精品视频免费看| 久久国产视频网| 91一区二区三区在线播放| 日韩一区二区精品| 一区二区三区在线视频观看58 | 国产一区在线观看视频| 一本大道久久精品懂色aⅴ| 精品久久久久av影院| 亚洲在线视频网站| 成人毛片在线观看| 欧美一二三在线| 亚洲国产欧美在线| 成人国产精品免费观看动漫| 日韩欧美高清在线| 一区二区在线免费| av激情综合网| 久久久久九九视频| 精品一区二区三区蜜桃| 欧美日韩久久久| 亚洲综合自拍偷拍| 色综合欧美在线视频区| 国产日韩欧美不卡在线| 九九视频精品免费| 日韩一区二区视频| 日韩影院在线观看| 精品视频在线免费看| 亚洲欧美日韩国产综合| 成人精品视频一区二区三区 | 亚洲精品老司机| 成人av电影免费观看| 国产欧美日韩精品a在线观看| 三级久久三级久久久| 欧美色网站导航| 亚洲欧美一区二区久久| 91小视频免费看| 中文字幕精品三区| 成+人+亚洲+综合天堂| 国产欧美综合在线观看第十页| 看电影不卡的网站| 精品国产91九色蝌蚪| 日本vs亚洲vs韩国一区三区| 欧美一区欧美二区| 极品少妇一区二区三区精品视频| 欧美一区二区黄| 久久丁香综合五月国产三级网站| 91精品国产日韩91久久久久久| 日本在线不卡一区| 2021国产精品久久精品| 国产综合色视频| 国产清纯在线一区二区www| 成人福利电影精品一区二区在线观看| 久久久精品中文字幕麻豆发布| 国产91精品在线观看| 国产精品福利一区二区三区| 91极品视觉盛宴| 水蜜桃久久夜色精品一区的特点| 日韩欧美一区二区在线视频| 久久99精品一区二区三区三区| 久久久久久麻豆| 91视频在线看| 婷婷激情综合网| 久久在线观看免费| 不卡视频在线看| 亚洲电影在线免费观看| 久久久久久久久蜜桃| 91激情五月电影| 免费观看日韩av| 国产精品久久久久久亚洲毛片| 色偷偷成人一区二区三区91| 日本欧美一区二区三区乱码| 中文字幕第一页久久| 欧美日韩在线播放一区| 国产精品一区二区在线看| 亚洲乱码国产乱码精品精98午夜 | 欧美一区二区观看视频| 国产a久久麻豆| 亚洲国产综合91精品麻豆 | 成人福利视频网站| 天天av天天翘天天综合网色鬼国产| 日韩精品一区二| 色婷婷一区二区三区四区| 日韩1区2区日韩1区2区| 国产精品福利一区二区三区| 日韩写真欧美这视频| 色婷婷久久久久swag精品| 久久国产精品露脸对白| 亚洲综合久久久久| 中文字幕欧美日韩一区| 日韩一级大片在线| 欧美亚洲一区二区在线观看| 成人激情小说网站| 麻豆国产欧美一区二区三区| 一区二区日韩av| 国产精品免费aⅴ片在线观看| 日韩一区二区三区在线视频| 在线观看免费成人| 菠萝蜜视频在线观看一区| 国产在线不卡一区| 美国欧美日韩国产在线播放| 亚洲一区二区不卡免费| 国产精品久久久久永久免费观看| 欧美大片一区二区三区| 在线成人小视频| 在线一区二区视频| 99久久精品国产网站| 国产激情视频一区二区三区欧美| 日本不卡视频在线观看| 亚洲成人黄色小说| 亚洲精品第1页| 亚洲精选一二三| 亚洲男人电影天堂| 亚洲欧美另类久久久精品2019| 中文字幕在线一区二区三区| 日本一区二区成人| 国产精品的网站| 国产精品久久久爽爽爽麻豆色哟哟| 国产人伦精品一区二区| 国产日产欧美一区二区视频| 国产精品欧美一区二区三区| 久久久777精品电影网影网| 国产日韩欧美a| 国产精品区一区二区三区| 中文字幕中文在线不卡住| 国产精品乱人伦中文| 亚洲丝袜自拍清纯另类| 亚洲综合在线五月| 天堂成人国产精品一区| 男女激情视频一区| 狠狠色伊人亚洲综合成人| 国产成人亚洲综合a∨婷婷图片| 国产99精品视频| www.在线成人| 欧美巨大另类极品videosbest| 91精品国产综合久久香蕉的特点| 日韩一区二区三区电影在线观看| 日韩欧美一级片| 国产精品毛片大码女人| 亚洲国产日日夜夜| 免费成人在线播放| 不卡免费追剧大全电视剧网站| 色综合亚洲欧洲| 欧美一卡2卡3卡4卡| 久久精品一区二区三区不卡牛牛| 久久久久国产免费免费| 亚洲乱码精品一二三四区日韩在线| 亚洲第一福利一区| 国产乱码精品一区二区三| 色八戒一区二区三区| 欧美一区二区性放荡片| 国产精品视频第一区| 日本不卡一区二区三区 | 在线一区二区视频| 91精品在线观看入口| 国产精品午夜电影| 五月天中文字幕一区二区| 国产原创一区二区三区| 欧美性感一区二区三区| 久久先锋影音av鲁色资源网| 亚洲精品视频免费观看| 国产精品一区二区免费不卡| 欧美色中文字幕| 欧美激情中文字幕一区二区| 三级在线观看一区二区| 97精品视频在线观看自产线路二| 日韩一区二区三区电影| 亚洲一区中文在线|