Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Encontrando palavras-chave

var palavraChave = "Java";

Console.Write("Digite sua consulta: ");
string consultaUsuario = Console.ReadLine()!;

if (consultaUsuario.Contains(palavraChave, StringComparison.OrdinalIgnoreCase)) {
    Console.WriteLine("O texto contém a palavra chave.");
} else Console.WriteLine("O texto não contém a palavra chave.");
1 resposta
solução!

Olá, Diego. Como vai?

O seu código ficou excelente! Você utilizou de forma perfeita o método .Contains(), que é a ferramenta nativa ideal no C# para verificar a existência de uma subcadeia de caracteres dentro de um texto.

O grande destaque do seu projeto foi o uso do parâmetro StringComparison.OrdinalIgnoreCase dentro do método. Ao fazer isso, você blindou o seu sistema de busca contra o problema do case-sensitivity (diferenciação entre maiúsculas e minúsculas). Se o usuário digitar "java", "JAVA" ou "Java", o algoritmo encontrará a palavra com sucesso. Essa é uma excelente prática de mercado para criar sistemas de busca amigáveis para o usuário.

Para agregar ainda mais valor aos seus estudos sobre manipulação de texto e buscas em C#, vale a pena compreender o que acontece por baixo dos panos quando escolhemos o tipo de comparação. O .NET oferece duas opções principais para ignorar maiúsculas e minúsculas: OrdinalIgnoreCase e CurrentCultureIgnoreCase.

Qual é a diferença entre eles?

  • StringComparison.OrdinalIgnoreCase (O que você usou): Faz uma comparação puramente matemática baseada nos valores binários (valores dos caracteres na tabela Unicode) após normalizar as letras para maiúsculo. É extremamente rápido, performático e ideal para dados estruturados, códigos, chaves de dicionários, caminhos de arquivos ou strings fixas no código (como o seu termo "Java").
  • StringComparison.CurrentCultureIgnoreCase: Faz a comparação levando em consideração as regras linguísticas e gramaticais do idioma do sistema operacional onde o código está rodando. Por exemplo, em algumas culturas da Europa, caracteres com acentuação ou ligaduras ortográficas específicas podem ser considerados equivalentes à sua versão sem acento.

Para visualizar como o seu código funciona no fluxo de processamento de busca na memória do computador, observe a estrutura lógica da validação:

Como o seu objetivo era encontrar uma palavra-chave técnica específica ("Java") de forma direta e rápida, a sua escolha pelo método OrdinalIgnoreCase foi a mais correta e eficiente em termos de engenharia de software e performance.

Parabéns pela qualidade do código e por dominar o uso inteligente das sobrecargas de métodos de string no C#!

Espero que possa ter lhe ajudado!