Substituir Múltiplos Caracteres em String em Java
-
Substituir vários caracteres numa string utilizando
replaceAll()
em Java -
Substituir múltiplos caracteres numa string utilizando
String.replace()
em Java
String.replaceAll()
e String.replace()
são dois métodos úteis para substituir caracteres de uma string em Java. Neste artigo, veremos como podemos utilizar estes dois métodos para substituir vários caracteres numa string.
O método replaceAll()
pode fazer isto sozinho utilizando a expressão regular, mas se não quisermos utilizar expressões regulares, podemos utilizar o método replace()
.
Substituir vários caracteres numa string utilizando replaceAll()
em Java
replaceAll()
é utilizado quando queremos substituir todos os caracteres especificados ocorrências. Podemos utilizar expressões regulares para especificar o carácter que pretendemos substituir. Este método assenta em dois argumentos, o primeiro é o padrão de expressão regular, e o segundo é o carácter que pretendemos colocar.
No exemplo seguinte, iremos substituir vários caracteres utilizando algumas expressões regulares comuns.
public class ReplaceAllChars {
public static void main(String[] args) {
String stringUnderscoresForward = "j_u_s_t_a_s/t/r/i/n/g";
String stringWithDigits = "abcd12345efgh";
String stringWithWhiteSpaces = "s t r i n g";
String stringWithLowerCase = "This is a Lower Case String";
String finalString1 = stringUnderscoresForward.replaceAll("[_/]", "-");
String finalString2 = stringWithDigits.replaceAll("[\\d]", "");
String finalString3 = stringWithWhiteSpaces.replaceAll("[ ]", "");
String finalString4 = stringWithWhiteSpaces.replaceAll("[\\s]", "-");
String finalString5 = stringWithLowerCase.replaceAll("[\\p{Lower}]", "");
System.out.println("Old String: " + stringUnderscoresForward + " New String: " + finalString1);
System.out.println("Old String: " + stringWithDigits + " New String: " + finalString2);
System.out.println("Old String: " + stringWithWhiteSpaces + " New String: " + finalString3);
System.out.println("Old String: " + stringWithLowerCase + " New String: " + finalString4);
System.out.println("Old String: " + stringWithLowerCase + " New String: " + finalString5);
}
}
Resultado:
Old String: j_u_s_t_a_s/t/r/i/n/g --New String: j-u-s-t-a-s-t-r-i-n-g
Old String: abcd12345efgh --New String: abcdefgh
Old String: s t r i n g --New String: string
Old String: This is a Lower Case String --New String: s-t-r-i-n-g
Old String: This is a Lower Case String --New String: T L C S
No exemplo acima, utilizamos múltiplas expressões regulares que são comummente utilizadas. Vamos ver o que significam e como funcionam.
O stringUnderscoresForward
tem todos os caracteres separados por sublinhados e barras de reforço; vamos substituir todos eles por um traço (-
). [char1 char2]
é o regex utilizado para substituir dois caracteres por um único caracter. Podemos utilizar [_/]
para substituir todos os sublinhados e barras por um traço.
stringWithDigits
é uma string com alfabetos aleatórios e alguns dígitos entre eles. Queremos substituir cada dígito por um caracter vazio. Para tal, podemos utilizar a sequência de fuga \d
que escapa aos dígitos. Será utilizado como um regex, e o carácter substituto será um carácter vazio.
O stringWithWhiteSpaces
contém espaços em branco entre cada caractere. Para remover os espaços, podemos substituí-los por caracteres vazios. Os parênteses vazios com espaço branco [ ]
indicam um espaço branco na string.
Também podemos utilizar [\\s]
para colocar os espaços em branco numa string.
O stringWithLowerCase
tem tanto os caracteres minúsculos como os maiúsculos. Queremos substituir cada letra minúscula por uma letra vazia. Utilizaremos [\p{Lower}]
que é um regex para obter todos os caracteres minúsculos.
Substituir múltiplos caracteres numa string utilizando String.replace()
em Java
public class ReplaceAllChars {
public static void main(String[] args) {
String stringWithRandomChars = "javbjavcjadakavajavc";
String finalString =
stringWithRandomChars.replace("b", "a").replace("c", "a").replace("d", "v").replace(
"k", "j");
System.out.println(finalString);
}
}
Resultado:
javajavajavajavajava
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn