是否存在Python的Java等价物';s printf散列替换?
具体地说,我正在将python脚本转换为java助手方法。下面是一个代码片段(为简单起见稍微修改)是否存在Python的Java等价物';s printf散列替换?,java,python,Java,Python,具体地说,我正在将python脚本转换为java助手方法。下面是一个代码片段(为简单起见稍微修改) 所以在文件中有%(a),%(b),%(1)等,我想用散列键替换它们。我仔细阅读了API,但什么也找不到。我错过了吗?或者类似的东西在Java API中不存在吗?如果没有一些额外的模板库,您无法直接执行此操作。我推荐。非常轻量级,非常优化和健壮。我怀疑您是否能找到一个纯Java的解决方案,它能完全满足您的需求 记住这一点,最佳答案取决于文件中出现的Python格式字符串的复杂性和多样性: 如果它们
所以在文件中有%(a),%(b),%(1)等,我想用散列键替换它们。我仔细阅读了API,但什么也找不到。我错过了吗?或者类似的东西在Java API中不存在吗?如果没有一些额外的模板库,您无法直接执行此操作。我推荐。非常轻量级,非常优化和健壮。我怀疑您是否能找到一个纯Java的解决方案,它能完全满足您的需求 记住这一点,最佳答案取决于文件中出现的Python格式字符串的复杂性和多样性:
- 如果它们很简单且没有变化,最简单的方法可能是自己编写代码
- 如果相反的说法是正确的,那么只需很少的工作就可以得到你想要的结果。这将使您能够直接使用Python的字符串格式操作符(
)。更重要的是,您可以给它一个Java%
,就像它是一个Python字典一样(在代码中是Map
)vals
str.format()
。但我正在转换为Java。python脚本现在可以正常工作,并且正在生产中运行。所以这真的没关系,第一句话是真的。因此,我不希望导入其他库或任何东西。我们有一个现有的Java应用程序,它可以简单地通知外部系统运行脚本。相反,我们只是将脚本导入到系统中以删除依赖项。我能够编写一个静态格式的方法,在单元测试中使用HashMap,可能比使用任何外部解决方案快得多:)Thanks就像一个很好的库,我会将它保存在我的记录中,以备将来的项目使用。然而,这是一个相对简单的重新实现,所以我将自己编写一些代码。
# hash of values
vals = {}
vals['a'] = 'a'
vals['b'] = 'b'
vals['1'] = 1
output = sys.stdout
file = open(filename).read()
print >>output, file % vals,