Java – mask string with characters
•
Java
Hey guys, I tried to find a way to hide the string, but the code I found is only applicable to my application... Is there a way to hide the characters in the string with "*" or "–", if so, someone can explain
Solution
Is this for entering a password? Consider the following:
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(); } }
Or for the executioner
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(); } }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码