Hola, he intentado encontrar una manera de ocultar una cadena, pero el código que encontré solo funciona con mi aplicación ... ¿Hay alguna manera de ocultar los caracteres en una cadena con "*"? o "-" y si hay alguien puede explicarMáscara Cadena con caracteres
Respuesta
¿Esto es para hacer una contraseña? Considere lo siguiente:
O para el enfoque del ahorcado
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();
}
}
Basta con crear una cadena con el mismo número de caracteres que el original, con el lugar de su carácter "ofuscar".
String x = "ABCD";
String output = "";
for (int i = 0; i < x.length(); i++) {
output += "*";
}
Como alternativa puede usar x.replaceAll("\\S", "*")
, que preserve los espacios en blanco también.
Debe verificar todos los caracteres en blanco y no en blanco. Entonces la expresión regular sería '[\ s \ S]' – mrres1
@ mrres1 No, específicamente dije que usar 'replaceAll' con el patrón que mencioné" preservaría el espacio en blanco ". Es decir, solo reemplazaría los caracteres que no sean espacios en blanco con un asterisco. Así que "hola mundo" se convertiría en "***** *****". La expresión regular que proporcionó no conservará el espacio en blanco. –
La pregunta es "¿Hay alguna manera de ocultar los caracteres en una cadena con" * "o" - "y si hay alguien puede explicar" – mrres1
Desde aquí se puede implementar algo como esto:
public class MaskedString
{
private String data;
public MaskedString(String data){this.data = data;}
public void append(char c){data += c;}
public void setData(String data){this.data = data;}
public String getMasked()
{
StringBuilder sb = new StringBuilder();
for(int i=0; i<data.length(); i++)
sb.append('*');
return sb.toString();
}
public String getString()
{
return data;
}
}
Usted consigue la idea :)
Hay varias maneras de lograr esto, que dependerá de su aplicación.
Si desea enmascarar todos los caracteres con otro personaje de una sola vez, puede usar el método String#replaceAll(String regex, String replacement)
: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String).
Esto implica el uso de expresiones regulares, para regex
usaría [\s\S]
que coincidirá con cualquier espacio en blanco o carácter no en blanco. Para replacement
, usa una cadena normal, no un RegEx. En este caso, si quería un asterisco, use "*", para guión "-", muy simple.
Todos los demás métodos aquí funcionan bien, excepto los @Roddy of the Frozen Pea
y @djc391
, por eso es por eso que respondí correctamente.
Buena suerte
- 1. Aplicar máscara a una cadena
- 2. Aplicar una "máscara" a una cadena
- 3. Reemplazar los caracteres incorrectos de una Cadena con caracteres incorrectos
- 4. Agregar una máscara con CALayers
- 5. OpenGL - máscara con múltiples texturas
- 6. Recortar cadena con juego de caracteres específico
- 7. caracteres Unicode cadena
- 8. ¿Cómo usar una máscara con QPainter?
- 9. Máscara para putImageData con canvas HTML5?
- 10. Validar una dirección IP (con máscara)
- 11. UITableView rendimiento de desplazamiento con CALayer + máscara
- 12. cadena reemplazar caracteres de escape
- 13. Rubí tira cadena caracteres definidos
- 14. Recortar caracteres de una cadena
- 15. Caracteres sustitutos en la cadena
- 16. Eliminar caracteres de una cadena
- 17. Caracteres Unicode en cadena - iphone
- 18. if (máscara y VALOR) o si ((máscara y VALOR) == VALOR)?
- 19. Oracle to_date function. Máscara necesaria
- 20. Tratar con una cadena que contiene codificaciones de caracteres múltiples
- 21. cadena literal de bytes con caracteres no ASCII
- 22. ¿Cómo puedo eliminar caracteres repetidos en una cadena con R?
- 23. caracteres ilegales en ruta al cargar una cadena con XDocument
- 24. Eliminar los primeros 4 caracteres de una cadena con PHP
- 25. cadena JavaScript reemplazar con expresiones regulares a quitarse caracteres ilegales
- 26. reemplazar los caracteres especiales de una cadena con _ (subrayado)
- 27. Cadena: cómo reemplazar múltiples caracteres posibles con un solo carácter?
- 28. Inicialización matriz de caracteres con la cadena más pequeña literal
- 29. Python cadena de split con delimitador de varios caracteres
- 30. Convierte cadena en todos los caracteres mayúsculos con std :: transform
¿Qué has hecho hasta ahora? – kosa
¿Qué quieres decir con "esconder una cuerda"? ¿No puedes mostrar una cadena de "*" de la misma longitud que el original? ¿Solo quieres ocultar * algunos * caracteres? Contra un patrón? ¿Longitud? –
Sí, como dijo Dave Newton, hay formas de reemplazar porciones de la cuerda, o toda la cuerda con lo que quieras, pero tendrás que ser más específico acerca del resultado deseado. ¿Puede darnos un ejemplo específico que muestre la cadena original y cómo desea que se encargue de su "reemplazo"? –