NpsMeter用于特定格式的计量单位表达式的计算。计量单位表达式的格式主要有:
1.数字+单位/单位,例如5包/盒
2.数字+单位+间隔符+per+间隔符+单位,例如5pcs per carton
3.数字+单位+间隔符+a+间隔符+单位,例如 5kg a barrel
其中第一个单位也可以放在最前面,例如 RMB 5 per pcs
间隔符可以是:空格、tab键、全角空格、回车换行
多个计量单位表达式间可以使用空格、tab键、全角空格、逗号、分号、全角逗号、全角分号、回车换行
如5包/盒,10盒/箱,50箱/大包
注意事项:
1.所有单位都不要用复数,前后一致
2.单个单位中间不能用空格间隔,单位最好使用简写
3.单位比对是区分大小写的
4.如果出现重复计数的,按左到后的优先次序引用
例如,输入 "5包/盒,10盒/箱,100盒/箱,50箱/大包",系统将忽略100盒/箱
5.只出现数字+单位组合的,不能出现其他规格组合
例如,"5箱"是合法的,但是"5箱 5元/箱"是不合法的
样例代码如下::
|
var meter_package = new NpsMeter("5包/盒,10盒/箱,50箱/件"); meter_package.Evaluate(); var pcs_per_package = meter_package.GetNum("包","件"); |
|
NpsMeter(String expression) 构造函数 |
|
| void |
SetExpression(String expression) 设置计量单位表达式。 |
| void |
Evaluate() throws Exception 对计量单位表达式进行分析 |
| String |
Validate() 判断Evaluate()运算结果是否正常,如果有错误则报告警告信息 |
| NpsMeter |
Sort() 对Evaluate()运算结果进行按单位从小到大排序 |
| String |
GetNum(String left,String right) left=盒,right=件表示计算每件包含的盒数 |
| String[] |
GetNth(int index) 返回第N个计量表达式。 返回值String[0]表示左侧单位,String[1]表示数值,String[2]表示右侧单位 |
| String[] |
GetMetersByLeft(String left) 返回左单位运算符为left的第1个计量表达式。 返回值String[0]表示左单位,String[1]表示数值,String[2]表示右单位 |
| String[] |
GetMetersByRight(String right) 返回右单位运算符为right的第1个计量表达式。 返回值String[0]表示左单位,String[1]表示数值,String[2]表示右单位 |