📄 archiver.java
字号:
}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]) : " ")+"</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 + -