Home> Java> javaTutorial> body text

Java data processing example code

零下一度
Release: 2017-06-25 10:19:05
Original
1236 people have browsed it

 For the form "(TYPE=SITA##)&&(((CTYP=FPL##)||(CTYP=CHG##)||(CTYP=CNL##)||(CTYP=DLA## )||(CTYP=DL##)||(CTYP=ED##))&&(ADEP=ZSSS##))” often appears as the judgment condition of something. It is necessary to calculate the final condition of the entire condition. The result (true/false).

The Java code is given below

1 package com.test; 2 3 import net.sourceforge.jeval.Evaluator; 4 5 public class T1 { 6 7 public static void main(String[] args) throws Exception { 8 String condition ="(TYPE=SITA##)&&(((CTYP=FPL##)||(CTYP=CHG##)||(CTYP=CNL##)||(CTYP=DLA##)||(CTYP=DL##)||(CTYP=ED##))&&(ADEP=ZSSS##))"; 9 condition = replaceExpression(condition, "TYPE=", "SITA", "="); 10 condition = replaceExpression(condition, "CTYP=", "FPL", "="); 11 condition = replaceExpression(condition, "ADEP=", "", "="); 12 System.out.println("condition:"+condition); //condition:(1)&&(((1)||(0)||(0)||(0)||(0)||(0))&&(0)) 13 14 /** 15 * 数字表达式解析工具 16 * Evaluator需要下载jeval包,本文后附上链接 17 */ 18 Evaluator evaluator = new Evaluator(); 19 boolean b = evaluator.getBooleanResult(condition); // false 20 System.out.println(b); 21 System.out.println(evaluator.evaluate("2+3")); // 5.0 22 23 } 24 25 /** 26 * 27 * @param condition 28 * @param replace 29 * @param toBeCompared 30 * @param operators 31 * @return 32 * @throws Exception 对于不符合计算的会抛出异常 33 */ 34 public static String replaceExpression(String condition, String replace, 35 String toBeCompared, String operators) throws Exception { 36 while (condition.contains(replace)) { 37 int start = condition.indexOf(replace); 38 int end = condition.indexOf("##", start); 39 String express = condition.substring(start, end); 40 express = express.substring(replace.length()); 41 if (">=".equals(operators)) { 42 43 if (Long.parseLong(toBeCompared) >= Long.parseLong(express)) { 44 condition = condition.substring(0, start) + "1" 45 + condition.substring(end + 2); 46 } else { 47 condition = condition.substring(0, start) + "0" 48 + condition.substring(end + 2); 49 } 50 } else if ("<=".equals(operators)) { 51 if (Long.parseLong(toBeCompared) <= Long.parseLong(express)) { 52 condition = condition.substring(0, start) + "1" 53 + condition.substring(end + 2); 54 } else { 55 condition = condition.substring(0, start) + "0" 56 + condition.substring(end + 2); 57 } 58 } else if (">".equals(operators)) { 59 60 if (Long.parseLong(toBeCompared) > Long.parseLong(express)) { 61 condition = condition.substring(0, start) + "1" 62 + condition.substring(end + 2); 63 } else { 64 condition = condition.substring(0, start) + "0" 65 + condition.substring(end + 2); 66 } 67 } else if ("<".equals(operators)) { 68 if (Long.parseLong(toBeCompared) < Long.parseLong(express)) { 69 condition = condition.substring(0, start) + "1" 70 + condition.substring(end + 2); 71 } else { 72 condition = condition.substring(0, start) + "0" 73 + condition.substring(end + 2); 74 } 75 } else if ("!=".equals(operators)) { 76 if (!express.equals(toBeCompared)) { 77 condition = condition.substring(0, start) + "1" 78 + condition.substring(end + 2); 79 } else { 80 condition = condition.substring(0, start) + "0" 81 + condition.substring(end + 2); 82 } 83 } else { 84 if ("RADDRESS=".equals(replace)) { 85 String[] toBeComparedArray = toBeCompared.split(" "); 86 String flag = "0"; 87 for (String toBeComparedString : toBeComparedArray) { 88 if (express.equals(toBeComparedString)) { 89 flag = "1"; 90 break; 91 } 92 } 93 condition = condition.substring(0, start) + flag 94 + condition.substring(end + 2); 95 96 } else { 97 if (express.equals(toBeCompared)) { 98 condition = condition.substring(0, start) + "1" 99 + condition.substring(end + 2);100 } else {101 condition = condition.substring(0, start) + "0"102 + condition.substring(end + 2);103 }104 }105 }106 }107 return condition;108 }109 }
Copy after login

Related jar package download:

The above is the detailed content of Java data processing example code. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!