Pular para o conteúdo principal

Questão de Programação — Java — FUNDATEC 2024

ProgramaçãoJava
Código
qg164399
Banca
FUNDATEC
Órgão
IF Sul - MG
Ano
2024
Nível
Superior
Cargo
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"?
  1. AApenas I.
  2. BApenas II.
  3. CApenas I e II.
  4. DApenas II e III.
  5. 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.

1replace(CharSequence)
Substitui TODAS as ocorrências
Alvo literal (não regex)
2replaceAll(String regex)
Substitui TODAS as ocorrências
Alvo é regex (literal simples funciona)
3replaceFirst(String regex)
Substitui APENAS a 1ª ocorrência
Alvo é regex
Métodos de substituição (String)
LEVELsoulevel.com.br
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.

Link permanente: /questoes/qg164399