具体来说,我正在将python脚本转换为java帮助器方法。这是一个片段(为简单起见稍作修改)。
# hash of values
vals = {}
vals['a'] = 'a'
vals['b'] = 'b'
vals['1'] = 1
output = sys.stdout
file = open(filename).read()
print >>output, file % vals,
所以在文件中有%(a),%(b),%(1)等我想用哈希键代替。我仔细阅读了API但找不到任何东西。我是否错过了它或Java API中不存在这样的东西?
答案 0 :(得分:2)
如果没有其他模板库,则无法直接执行此操作。我推荐StringTemplate。非常轻量级,easy to use,非常优化和强大。
答案 1 :(得分:1)
我怀疑你会找到一个纯粹的Java解决方案,它可以完全满足您的需求。
考虑到这一点,最佳答案取决于文件中出现的Python格式化字符串的复杂性和多样性:
如果它们很简单而且没有多变,最简单的方法就是自己编写代码。
如果情况恰恰相反,那么通过embedding Jython into your Java program获得您想要的结果的方法之一就是{{3}}。这将使您能够直接使用Python的字符串格式化运算符(%
)。更重要的是,你将能够为它提供一个Java Map
,就好像它是一个Python字典(代码中为vals
)。