Problema basico

Estou inciando nessa area de programaçao, e queria saber o que esta errado nesse codigo aqui:

String tecnico1 = time1.getText();
    
   if (tecnico1.equalsIgnoreCase(" Corinthians ")) {
      escreverTime1.setText("Fabio Carille");
      
  }

Objetivo: Ao usuario digitar o nome do time vai aparecer respectivo tecnico do time.
Problema: O nome do tecnico nao esta aparecendo, estou criando esse programa no jframe.

Se usar o equals, o nome do time deve ser idêntico ao que estiver dentro do if, inclusive com espaço.
Se usar o contains, vai atrapalhar o controle de fluxo, pois há times que tem parte do nome idêntico.
Ex.:

    //deve remover os espaços, pois o cliente não conhece essa implementação
    if (tecnico1.equalsIgnoreCase(" Corinthians ")) {//espaço antes e depois, não reconhece o nome do time, sem informar os espaços na mesma ordem
   

     //obriga que o usuário digite o nome do time corretamente, ignorando se as letras são minúsculas ou maiúsculas
     if (tecnico1.equalsIgnoreCase("Corinthians")) {//a entrada não pode ter espaços neste caso
 
    //usar o contains pode atrapalhar o fluxo de decisão, se foi lançado na entrada só parte de nome de um time, ex: atlético, entraria no primeiro if com o nome atlético + alguma coisa
    if (tecnico1.toLowerCase().contains("nome do time minúsculo")) {               

Sugestão, fornecer um combobox com o nome dos times, por ser uma solução mais simples, ou implementar uma funcionalidade na qual à medida em que o usuário digitar o nome dos times sejam relacionados (mais complexo), ou outra lógica que preferir.

Resumo, se quer usar o equalsIgnoreCase, o usuário terá que informar o nome do time da mesma forma que estiver dentro do if (tecnico1.equalsIgnoreCase(" tUdO igual zin, se não, erra"))

1 curtida