Professor do Ensino Básico, técnico e Tecnológico: MCH-02 - Informática
Analise as assertivas abaixo, as quais apresentam trechos de código na linguagem Java:I. String texto = "Casa X ferreiro, espeto X pau.";texto = texto.replace("X", "de");II. String texto = "Casa X ferreiro, espeto X pau.";texto = texto.replaceAll("X", "de");III. String texto = "Casa X ferreiro, espeto X pau.";texto = texto.replaceFirst("X", "de");Em quais assertivas será realizada a substituição, na variável "texto", de todas ocorrências de "X" por "de"?
AApenas I.
BApenas II.
CApenas I e II.
DApenas II e III.
EI, II e III.
Revelar gabarito e comentário▾
GabaritoC — Apenas I e II.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Métodos de Substituição em Java (String)
Gabarito: letra C. Os métodos replace e replaceAll substituem todas as ocorrências do caractere/string alvo, enquanto replaceFirst substitui apenas a primeira ocorrência. Portanto, apenas as assertivas I e II realizam a substituição completa.
A questão testa o conhecimento dos três métodos de substituição da classe String do Java:
replace(CharSequence target, CharSequence replacement): substitui todas as ocorrências da sequência alvo pela sequência de substituição.
replaceAll(String regex, String replacement): substitui todas as ocorrências que correspondem à expressão regular fornecida. Quando a regex é um caractere literal (como "X"), o comportamento é idêntico ao replace.
replaceFirst(String regex, String replacement): substitui apenas a primeira ocorrência que corresponde à regex.
Métodos de substituição (String): replace(CharSequence) (Substitui TODAS as ocorrências, Alvo literal (não regex)); replaceAll(String regex) (Substitui TODAS as ocorrências, Alvo é regex (literal simples funciona)); replaceFirst(String regex) (Substitui APENAS a 1ª ocorrência, Alvo é regex)
Assertiva I — ✅ Correta
texto.replace("X", "de") substitui todas as ocorrências de "X" por "de". O método replace com CharSequence substitui globalmente.
Assertiva II — ✅ Correta
texto.replaceAll("X", "de") também substitui todas as ocorrências. Embora replaceAll espere uma expressão regular, o caractere "X" não é especial, então o efeito é o mesmo.
Assertiva III — ❌ Incorreta
texto.replaceFirst("X", "de") substitui apenas a primeira ocorrência de "X". Portanto, não atende ao requisito de substituir todas as ocorrências.
Conclusão: As assertivas I e II são corretas. Logo, o gabarito é a letra C (Apenas I e II).
NÃO CAIA NESSA!
A banca explora a diferença sutil entre replaceFirst e os demais. O candidato pode achar que replaceAll só substitui expressões regulares, mas ela também age como substituição global para literais simples. Já replaceFirst é o único que não substitui todas as ocorrências.