如何为字符串创建模板?

时间:2016-06-03 10:49:55

标签: java string file file-writing jexl

所以基本上我有一个需要写入具有特定格式的文本文件的java对象列表。

例如。

class car
{
    String license;
    String color;
    String model;
    String numOfSeats;
}

并且必须将其写入文本文件中,每行的格式为

license--color-----model-------numOfSeats------

license必须占用10个字节,即使实际字符串的长度较短。

color必须占用10个字节,model必须占用12个字节等。

所以我想以这样的方式创建一个模板,我可以插入变量,它们占用所需的字节数(即如果更短则用空格填充,如果更长则截断)

因此,将来,如果模板发生变化,我不需要进行任何代码更改。我只需要更改模板。

我一直在探索JEXL,但我不知道如何用它实现这个目标。

1 个答案:

答案 0 :(得分:1)

我能够使用JEXL

实现这一目标

expression = ${utilClass.rpad(car.getLicense(), 10)}

JexlEngine jexl = new JexlBuilder().create(); JxltEngine jxlt = jexl.createJxltEngine(); JxltEngine.Expression expr = jxlt.createExpression(expression); JexlContext context = new MapContext(); context.set("utilClass", new UtilClass());context.set("car", new Car())

expr.prepare(context); String s= expr.evaluate(context).toString();

我可以从文件中获取表达式,因此如果布局发生变化,我只需更改文件,我就不需要触摸代码了。