java – 带字符的Mask字符串
发布时间:2020-12-14 06:03:24 所属栏目:Java 来源:网络整理
导读:嘿家伙我试图找到隐藏字符串的方法,但我发现的代码只适用于我的应用程序…有没有办法用“*”或“ – ”隐藏字符串中的字符,如果有的话是有人可以请解释 解决方法 这是用于输入密码吗?考虑以下: class Password { final String password; // the string to
嘿家伙我试图找到隐藏字符串的方法,但我发现的代码只适用于我的应用程序…有没有办法用“*”或“ – ”隐藏字符串中的字符,如果有的话是有人可以请解释
解决方法
这是用于输入密码吗?考虑以下:
class Password { final String password; // the string to mask Password(String password) { this.password = password; } // needs null protection // allow this to be equal to any string // reconsider this approach if adding it to a map or something? public boolean equals(Object o) { return password.equals(o); } // we don't need anything special that the string doesnt public int hashCode() { return password.hashCode(); } // send stars if anyone asks to see the string - consider sending just // "******" instead of the length,that way you don't reveal the password's length // which might be protected information public String toString() { StringBuilder sb = new StringBuilder(); for(int i = 0; < password.length(); i++) sb.append("*"); return sb.toString(); } } 或者对于刽子手的方法 class Hangman { final String word; final BitSet revealed; public Hangman(String word) { this.word = word; this.revealed = new BitSet(word.length()); reveal(' '); reveal('-'); } public void reveal(char c) { for(int i = 0; i < word.length; i++) { if(word.charAt(i) == c) revealed.set(i); } } public boolean solve(String guess) { return word.equals(guess); } public String toString() { StringBuilder sb = new StringBuilder(word.length()); for(int i = 0; i < word.length; i++) { char c = revealed.isSet(i) ? word.charAt(i) : "*"; } return sb.toString(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |