我的java程序将允许基于用户定义的逻辑操作过滤csv文件的内容。将从两列csv文件的内容中读取数据
left right
5 10
2 6
用户将在左右引用的命令行上提供逻辑条件操作。程序应根据逻辑操作的结果过滤到csv文件的内容。
IF ((left < right) AND (left !=10)) THEN 5 ELSE right
我计划将操作类型表示为枚举
enum Operation
>,
<,
==,
!=
public boolean evaluate(int left,int right);
将支持评估方法。该操作的具体逻辑将在特定的枚举类型中实现。
Condition接口支持访问左操作数,操作和右操作数的方法
interface Condition
{
public int getLeft();
public Operation();
public int getRight();
}
对于AND情况,我只维护一个条件列表并迭代列表以确保所有条件都为真。但是如何显示我代表IF THEN ELSE关键词?
答案 0 :(得分:0)
遵循您的界面约定:
interface Conditional {
public Condition Condition();
public int TrueValue();
public int FalseValue();
}
我会使用类而不是引用整数,我也会引用Expression
类。
答案 1 :(得分:0)
如何使用Velocity这样的方法而不是采用这种方法?您基本上读取数组中left
中的所有数字以及right
中不同数组中的所有数字,并将这些数组传递给Velocity上下文然后让用户键入Velocity样式(如果有条件的话)让Velocity照顾其余的?