Mask String with characters

后端 未结 5 1556
悲哀的现实
悲哀的现实 2021-01-12 10:46

Hey guy\'s I tried to find a way to hide a string, but the code that I found just work with my application... Is there a way to hide the characters in a string with either <

5条回答
  •  爱一瞬间的悲伤
    2021-01-12 11:21

    Is this for making 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 hangman approach

    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();
        }
    }
    

提交回复
热议问题