Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否存在Python的Java等价物';s printf散列替换?_Java_Python - Fatal编程技术网

是否存在Python的Java等价物';s printf散列替换?

是否存在Python的Java等价物';s printf散列替换?,java,python,Java,Python,具体地说,我正在将python脚本转换为java助手方法。下面是一个代码片段(为简单起见稍微修改) 所以在文件中有%(a),%(b),%(1)等,我想用散列键替换它们。我仔细阅读了API,但什么也找不到。我错过了吗?或者类似的东西在Java API中不存在吗?如果没有一些额外的模板库,您无法直接执行此操作。我推荐。非常轻量级,非常优化和健壮。我怀疑您是否能找到一个纯Java的解决方案,它能完全满足您的需求 记住这一点,最佳答案取决于文件中出现的Python格式字符串的复杂性和多样性: 如果它们

具体地说,我正在将python脚本转换为java助手方法。下面是一个代码片段(为简单起见稍微修改)


所以在文件中有%(a),%(b),%(1)等,我想用散列键替换它们。我仔细阅读了API,但什么也找不到。我错过了吗?或者类似的东西在Java API中不存在吗?

如果没有一些额外的模板库,您无法直接执行此操作。我推荐。非常轻量级,非常优化和健壮。

我怀疑您是否能找到一个纯Java的解决方案,它能完全满足您的需求

记住这一点,最佳答案取决于文件中出现的Python格式字符串的复杂性和多样性:

  • 如果它们很简单且没有变化,最简单的方法可能是自己编写代码

  • 如果相反的说法是正确的,那么只需很少的工作就可以得到你想要的结果。这将使您能够直接使用Python的字符串格式操作符(
    %
    )。更重要的是,您可以给它一个Java
    Map
    ,就像它是一个Python字典一样(在代码中是
    vals


您使用的是哪一版本的python?@Dana:没关系。最近几个版本中的任何一个版本都支持这一点。是的,但是对于str.format(),我遇到了很多情况,其中py ver<2.6这是字符串插值的一部分,而不是
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,