用包含子串

时间:2017-07-06 02:08:44

标签: java android

我试图通过用符号(*)替换一些单词来安全地显示电子邮件数据,但是没有像预期的那样在制作示例脚本时可能会出现错误。

String email = "thismyemail@myhost.com";
String get_text = email.get_text(3, 6);
String hasil = email.replace(get_text,"*");
email_string = (EditText) findViewById(R.id.emailT);
email_string.setText(hasil);

但结果是这样的

thi*email@myhost.com

我期待

thi***email@myhost.com

2 个答案:

答案 0 :(得分:3)

String hasil = email.replace(get_text,"***");

但请注意,如果该文字出现在字符串中的任何其他位置,它也会被替换。

此外,如果电子邮件与jf@mymailserver.com类似,则您无法用*替换部分用户ID。

因此,您可以找到更好的方法来选择字符,考虑到电子邮件的长度,而不是"替换"文本,而是将这些字符放在你想要的特定位置。

有关如何改进此问题的一些想法,请参阅此相关问题:

masking of email address in java

答案 1 :(得分:-1)

您的代码似乎正确。如果您的预期输出与上面提到的一样,您可以再添加2个" *"代码。

String hasil = email.replace(get_text,"***");

我希望它有所帮助