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

📄 archiver.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		}else{
			return "<br /><span style=\"display:none\">"+randomStr.toString()+"</span>";
		}
	}
	
	private String excute(StringBuffer expiression){
		if(expiression==null||expiression.equals("0")){
			return "0";
		}
		int indexF = expiression.lastIndexOf("("); 
		if(indexF<0){
			return count(expiression.toString()); 
		}else{
			int indexA = expiression.indexOf(")", indexF);  
			return excute(expiression.replace(indexF, indexA+1, count(expiression.substring(indexF+1, indexA))));  
		}
		
	}
	private String count(String expiression){
		StringBuffer tempBuffer = null;
		int indexM = expiression.indexOf("*");
		if(indexM<0){ 
			int indexD = expiression.indexOf("/");
			if(indexD<0){ 
				int indexA = expiression.indexOf("+");
				if(indexA<0){
					int indexS = expiression.indexOf("-");
					if(indexS>0){ 
						tempBuffer = getResult(indexS, expiression, "-");
					}else if(indexS==0){
						StringBuffer buffer = new StringBuffer(expiression);
						indexS = buffer.indexOf("-", 1);
						if(indexS>1){ 
							tempBuffer = getResult(indexS, expiression, "-");
						}else if(indexS==1){ 
							tempBuffer = new StringBuffer(buffer.replace(0, 2, "").toString());
						}else {  
							tempBuffer = buffer;
						}
					 
					}else{
						return expiression;
					}
				}else{ 
					tempBuffer = getResult(indexA, expiression, "+");
				}
			}else{ 
				tempBuffer = getResult(indexD, expiression, "/");
			}
		}else{ 
			tempBuffer = getResult(indexM, expiression, "*");
		}
		if(tempBuffer.indexOf("*")>0
				||tempBuffer.indexOf("/")>0
				||tempBuffer.indexOf("+")>0
				||tempBuffer.indexOf("-")>0
				||(tempBuffer.indexOf("-")==0
						&&tempBuffer.indexOf("-",1)>0)){
			return count(tempBuffer.toString());
		}else{
			return tempBuffer.toString();
		}
	}
 
	private StringBuffer getResult(int index,String expiression,String sign){
		StringBuffer tempBuffer = new StringBuffer(expiression);
		String leftNumber = getLeftNumber(index, expiression);
		String rightNumber = getRightNumber(index, expiression);
		Double result = null;
		if(sign.equals("*")){
			result = Double.valueOf(leftNumber)*Double.valueOf(rightNumber);
		}else if(sign.equals("/")){
			result = Double.valueOf(leftNumber)/Double.valueOf(rightNumber);
		}else if(sign.equals("+")){
			result = Double.valueOf(leftNumber)+Double.valueOf(rightNumber);
		}else if(sign.equals("-")){
			result = Double.valueOf(leftNumber)-Double.valueOf(rightNumber);
		}
		int firstIndexOfLeftNumber = index-leftNumber.length();
		int lastIndexOfRightNumber = index+rightNumber.length();
		tempBuffer.replace(firstIndexOfLeftNumber, lastIndexOfRightNumber+1, result.toString());
		return tempBuffer;
	}
 
	private String getLeftNumber(int singIndex,String expiression){
		StringBuffer tempBuffer = new StringBuffer();
		for(int i = singIndex-1;i>-1;i--){
			char temp = expiression.charAt(i);
			if(temp==' '){
				continue;
			}
			if(Character.isDigit(temp)||temp=='.'){
				tempBuffer.insert(0, temp);
			}else {
				if(temp=='-'&&(i==0||!Character.isDigit(expiression.charAt(i-1)))){
					tempBuffer.insert(0, temp);
				}else{
					break;
				}
			}
		}
		return tempBuffer.toString();
	}
 
	private String getRightNumber(int singIndex,String expiression){
		StringBuffer tempBuffer = new StringBuffer();
		for(int i = singIndex+1;i<expiression.length();i++){
			char temp = expiression.charAt(i);
			if(temp==' '){
				continue;
			}
			if(i==singIndex+1&&temp=='-'){
				tempBuffer.append(temp);
				continue;
			}
			if(Character.isDigit(temp)||temp=='.'){
				tempBuffer.append(temp);
			}else {
				break;
			}
		}
		return tempBuffer.toString();
	}
	
	private Map<String,Map> showAdvertisements(Map<String,String> _DCACHE_advsMap,Map<String,String> settings){
		Map<String,Map> resultMap = new HashMap<String, Map>();
		Map globaladvs=dataParse.characterParse(settings.get("globaladvs"),false);
		Map<String,Map<String,String>> advarray=new HashMap<String, Map<String,String>>();
		Map<String,String> advitems=new HashMap<String, String>();
		if(_DCACHE_advsMap!=null){
			Map _DCACHE_advs =dataParse.characterParse(_DCACHE_advsMap.get("advs"),false);
			_DCACHE_advsMap=null;
			Map<String,Map<String,String>> advs=(Map<String,Map<String,String>>)_DCACHE_advs.get("type");
			advitems=(Map<String,String>)_DCACHE_advs.get("items");
			if(advitems==null){
				advitems=new HashMap<String, String>();
			}
			if(globaladvs!=null&&globaladvs.size()>0){
				if(advs==null){
					advs=new HashMap<String,Map<String,String>>();
				}
				Map<String,Map<String,String>> types=(Map<String,Map<String,String>>)globaladvs.get("type");
				if(types!=null){
					Set<String> keys=types.keySet();
					for (String type : keys) {
						Map<String,String> advitem=advs.get(type);
						Map<String,String> typeitems=types.get(type);
						if(advitem!=null&&advitem.size()>0){
							Set<String> objs=advitem.keySet();
							for (String obj : objs) {
								String advids=advitem.get(obj.trim());
								String advid=typeitems.get("all");
								if(advids!=null){
									advids+=","+advid;
									advitem.put(obj.trim(), advids);
								}else{
									advitem.put(obj.trim(), advid);
								}
							}
						}else{
							advitem=new HashMap<String, String>();
							advitem.putAll(typeitems);
						}
						advs.put(type, advitem);
					}
					advitems.putAll((Map<String,String>)globaladvs.get("items"));
				}
				types=null;
			}
			advarray=advs;
			advs=null;
		}
		else{
			if(globaladvs!=null&&globaladvs.size()>0){
				advarray=(Map<String,Map<String,String>>)globaladvs.get("type");
				advitems =(Map<String,String>)globaladvs.get("items");
				if(advitems==null){
					advitems=new HashMap<String, String>();
				}
			}
		}
		globaladvs=null;
		Map<String,Map<String,String>> advlist=new HashMap<String, Map<String,String>>();
		if(advarray!=null&&advarray.size()>0){
			Map<String,Map<Integer,String>> advthreads=new HashMap<String, Map<Integer,String>>();
			Set<String> keys =advarray.keySet();
			Random rand=new Random();
			for (String advtype : keys) {
				Map<String,String> advcodes=advarray.get(advtype);
				Set<String> objs=advcodes.keySet();
				if(advtype.length()>5&&advtype.substring(0,6).equals("thread")){
					Map<Integer,String> advtypes=advthreads.get(advtype);
					if(advtypes==null){
						advtypes=new HashMap<Integer, String>();
					}
					int ppp=Common.toDigit(settings.get("wapppp"), 1000000000L, 0L).intValue();
					for (int i = 1; i <= ppp; i++) {
						String advid=advcodes.get(String.valueOf(i));
						if(advid==null){
							advid=advcodes.get("0");
						}
						if(advid!=null){
							String[] advids=advid.split(",");
							advtypes.put(i-1, advitems.get(advids[rand.nextInt(advids.length)]));
						}
					}
					advthreads.put(advtype, advtypes);
				}
				else if("intercat".equals(advtype)){
					for (String obj : objs) {
						String[] advid=advcodes.get(obj).split(",");
						advcodes.put(obj, advid[rand.nextInt(advid.length)]);
					}
					advlist.put("intercat",advcodes);
				}else{
					if("text".equals(advtype)){
						for (String obj : objs) {
							String[] advids=advcodes.get(obj).split(",");
							int advcols=0;
							int advcount=advids.length;
							if(advcount>5){
								int minfillpercent=0;
								for (int cols = 5; cols >=3; cols--) {
									int remainder=advcount%cols;
									if(remainder==0){
										advcols=cols;
										break;
									}
									else if(remainder/cols>minfillpercent){
										minfillpercent=remainder / cols;
										advcols=cols;
									}
								}
							}else{
								advcols=advcount;
							}
							String advtypestr="";
							for (int i = 0; i < advcols * Math.ceil(advcount / advcols); i++) {
								advtypestr+=((i + 1) % advcols == 1 || advcols == 1 ? "<tr>" : "")+"<td width=\""+(100 / advcols)+"%\">"+(advids[i]!=null? advitems.get(advids[i]) : "&nbsp;")+"</td>"+((i + 1) % advcols == 0 ? "</tr>\n" :"");
							}
							advcodes.put(obj, advtypestr);
						}
						advlist.put(advtype, advcodes);
					}
					else{
						for (String obj : objs) {
							String[] advid=advcodes.get(obj).split(",");
							advcodes.put(obj, advid[rand.nextInt(advid.length)]);
						}
						advlist.put(advtype, advcodes);
					}
				}
			}
		}
		resultMap.put("advlist", advlist);
		resultMap.put("advitems", advitems);
		return resultMap;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -