Domanda

Per esempio ho una stringa come questa: abc123 [*] xyz [#] 098 [~] F9E

[*], [#] e [~] rappresenta 3 diversi caratteri non stampabili. Come posso sostituirli con "X" in Java?

Frank

È stato utile?

Soluzione

Non sono sicuro se ho ben capito le vostre domande. Se si riesce a formulare meglio, penso che una semplice sostituzione di espressione regolare può essere tutto ciò che è necessario.

String r = s.replaceAll(REGEX, "X");

REGEX dipende da quello che vi serve:

"\\*|#|~"   : matches only '*', "#', and '~'
"[^\\d\\w]" : matches anything that is neither a digit nor a word character
"\\[.\\]"   : matches '[' followed by ANY character followed by ']'
"(?<=\\[).(?=\\])" : matches only the character surrounded by '[' and ']'

Altri suggerimenti

Questo SO Q & A mostra un modo per testare, in Java, se un determinato carattere è stampabile.

Come sicuramente sapete, in Java non è possibile modificare direttamente una stringa: piuttosto, si effettua una nuova StringBuilder agli oggetti inizializzato con la stringa, modificare l'oggetto stringa builder (ad esempio con chiamate setCharAt cui il metodo menzionato sopra mostra il carattere in tale indice non è stampabile ), e, infine, chiamare toString sull'oggetto stringa builder di fare un nuovo oggetto stringa, che si può tornare dal tuo metodo, o assegnare allo stesso identificatore si sta utilizzando per fare riferimento alla stringa originale, ecc, ecc, a seconda del vostro esatto ha bisogno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top