我想将Ruby代码转换为Java。一切都很好,除了一行:
digest = Digest::MD5.base64digest("#{width} #{height} #{unescaped_path} #{salt}")
digest.tr!('+/', '-_')
digest.tr!('=', '')
这段代码在Java中看起来如何?我想那会是
digest = Base64.getDecoder().decode(width + " " + height + unescaped_path + salt);
但是,tr!
对我来说还不清楚。看起来像replace
,但我不确定。
答案 0 :(得分:1)
tr
方法有两种模式。一种是它将集合A中的字符映射到集合B中的字符的地方:
"ABBA".tr('ABC', 'DEF')
# => "DEED"
这需要映射相同长度的字符串。如果替换面为空,则删除匹配集中的字符实例:
"ABBA".tr('A', '')
# => "BB"
tr!
是tr
的就地版本,但功能相同。