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. Máscara para putImageData con canvas HTML5?
- 9. ¿Cómo usar una máscara con QPainter?
- 10. UITableView rendimiento de desplazamiento con CALayer + máscara
- 11. Validar una dirección IP (con máscara)
- 12. cadena reemplazar caracteres de escape
- 13. Caracteres sustitutos en la cadena
- 14. Eliminar caracteres de una cadena
- 15. Rubí tira cadena caracteres definidos
- 16. Caracteres Unicode en cadena - iphone
- 17. Recortar caracteres de una cadena
- 18. if (máscara y VALOR) o si ((máscara y VALOR) == VALOR)?
- 19. Oracle to_date function. Máscara necesaria
- 20. Eliminar los primeros 4 caracteres de una cadena con PHP
- 21. Convierte cadena en todos los caracteres mayúsculos con std :: transform
- 22. Angular js - Devolver una cadena con caracteres HTML como
- 23. caracteres ilegales en ruta al cargar una cadena con XDocument
- 24. Expresión regular: tomar literalmente cadena con caracteres especiales re-
- 25. Cadena: cómo reemplazar múltiples caracteres posibles con un solo carácter?
- 26. reemplazar los caracteres especiales de una cadena con _ (subrayado)
- 27. Inicialización matriz de caracteres con la cadena más pequeña literal
- 28. Tratar con una cadena que contiene codificaciones de caracteres múltiples
- 29. ¿Cómo crear una lista con los caracteres de una cadena?
- 30. ¿Cómo dividir una cadena con caracteres en blanco al principio?
¿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"? –