【发布时间】:2013-08-29 20:10:01
【问题描述】:
我一直想知道一些关于字符串函数的问题,例如 replace()。
我的目标很简单。我有一个记录器,它将字符串记录到一个文本文件中,其中包含在将其写入日志文件之前需要屏蔽的密码。
例如:
str = "-field_value=userId=1,-field_value=password=pass123,-field_value=location=London,-field_value=day=Tuesday,-field_value=emailPassword=pass123,-field_value=fbPassword=pass1234";
在这种情况下,哪种方法最好?该字符串可能以也可能不以任何密码结尾“field_value”。
我需要在这个字符串中用它们的确切长度屏蔽所有出现的“密码”以获得以下输出:
str = "-field_value=userId=1,-field_value=password=*******,-field_value=location=London,-field_value=day=Tuesday,-field_value=emailPassword=*******,-field_value=fbPassword=********";
哪个更适合使用?普通字符串处理(使用 substrings/replaceAll/indexOf)或 StringBuilder 函数?
另外,在这种情况下使用正则表达式的效果如何?我从来没有广泛使用过正则表达式,所以我对在这种情况下使用它没有什么想法。
【问题讨论】:
-
我目前正在为这个用例使用 Java。虽然 C# 中的解决方案也会非常有帮助。
标签: regex string replace substring masking