compareToIgnoreCase (Ajuda com Maiúsculo e Minusculo

5 respostas
M
Ola boa tarde, seu novo aqui, acabei de me cadastrar ,  eu estou no 3º Período de Sistemas de Informação somente este período que comecei a estudar JAVA, professou passou um exercício simples conseguir fazer uns 90% dele, somente a parte de ignorar Maiúsculo e Minusculo  que n conseguir vou posta aqui,  se auguem puder me ajudem

Exercício:

1 ? Implementar uma estrutura de dados do tipo ARRAY capaz de armazenar o nome de 10 clientes de uma empresa fictícia. O sistema deve ser capaz de, utilizando a classe JOptionPane como interface de entrada e saída de dados, realizar as seguintes tarefas:

a-) ler o nome dos 10 clientes;

b-) listar o nome dos 10 clientes;

c-) listar todos os clientes, cujo nome inicia com ?Pedro?, ignorando as diferenças entre maiúsculos e minúsculos;

d-) listar todos os clientes, cujo nome termina com ?Silva?, ignorando as diferenças entre maiúsculos e minúsculos;

e-) listar todos os clientes, cujo nome contém com ?Antonio?, ignorando as diferenças entre maiúsculos e minúsculos;

Código:
package sabadoletivo;
    import javax.swing.JOptionPane;

public class SabadoLetivo {
   
    public static void main(String[] args) {
        final int NUM = 10;
        String nomeCliente  []   =  new String [NUM];
        //Lentra A
        for (int i = 0; i < NUM; i++){
            nomeCliente[i] = JOptionPane.showInputDialog("Nome:");
        }
       //Letra B
        String n = ""; 
        for(int i = 0; i < NUM; i++){
            n = n + nomeCliente[i] + "\n";
        }
        JOptionPane.showMessageDialog(null, n);
        //Letra C
        for(int i = 0; i < NUM; i++){
        if(nomeCliente[i].startsWith("Pedro")){
            JOptionPane.showMessageDialog(null,"Nome comessado com [Pedro] == " + nomeCliente[i]);
           }
        }
         //Letra D
        for(int  i = 0; i < NUM; i++){
        if(nomeCliente[i].endsWith("Silva")){
            JOptionPane.showMessageDialog(null,"Nome terminado com [Silva] ==" + nomeCliente[i]);
           }        
        }
        for(int  i = 0; i < NUM; i++){
        if(nomeCliente[i].contains("Antonio")){
            JOptionPane.showMessageDialog(null,"Nome que tem a palava [Antonio] == "+ nomeCliente[i]);
            }
        }  
    }
}

5 Respostas

ErickRAR

Apenas com o java, sem utilizar nenhuma outra biblioteca, você terá que colocar tudo pro maisculo/minusculo

if(nomeCliente[i].toLowerCase().startsWith("Pedro".toLowerCase())){  //ou .toUpperCase
  JOptionPane.showMessageDialog(null,"Nome começado com [Pedro] == " + nomeCliente[i]);  
}

Agora tem a classe StringUtils da org.apache.commons.lang, mas acho que seu professor não irá aceitar, vai parecer que está dando uma de espertinho, mas pode usar pra projetos seus :stuck_out_tongue:

import org.apache.commons.lang.StringUtils;

public class Main {
  public static void main(String[] args) {
    System.out.println(StringUtils.containsIgnoreCase("PEDRO DA SILVA", "Pedro")); //a saída será: true
  }
}
M

Ola, mais eu preciso que independente se digitar [ pedro ou PEDRO] na hora de filtrar todos nomes que começa com a palavra Pedro, tem que lista todos os nomes… exemplo

pedro antônio
Pedro marcos
PEDRO Henrique …

M

Ola ErickRAR entendi o que vc quis dizer… deu certo… agora vc pode me explica este trecho do código

if(nomeCliente[i].toLowerCase().startsWith("Pedro".toLowerCase())){ JOptionPane.showMessageDialog(null,"Nome comessado com [Pedro] == " + nomeCliente[i]); }

por que tem que coloca .toLowerCase() duas vezes ?

ErickRAR

O método toLowerCase() transforma a String em minusculo, o toUpperCase() transforma em maiúsculo.

System.out.println("O Dragão Chinês".toLowerCase()); // Imprime: o dragão chinês
System.out.println("Chuck Norris apanha pra mim direto".toUpperCase()); //Imprime: CHUCK NORRIS APANHA PRA MIM DIRETO

Fazendo isso na hora de comparar, você estará sempre comparando tudo minusculo, sem correr o risco de “Pedro” e “peDro” serem diferentes.

nomeCliente[i].toLowerCase()//Passa a string nomeCliente[i] para minusculo. "Pedro".toLowerCase() //Passa a String "Pedro" para minusculo. Não precisaria se você comparasse logo com "pedro" ao invés de "Pedro".
Depois é a verificação se uma String começa com aoutra.

Também tem o caso dos acentos e caracteres especiais, mas pra isso é melhor você ver só quando tiver um pouco mais de experiencia e tal, ai pode dar uma olhada nesse tópico?

M

Obrigado pela atenção ErickRAR conseguir compreender perfeitamente os metados… vlw pela ajuda

Criado 24 de fevereiro de 2014
Ultima resposta 25 de fev. de 2014
Respostas 5
Participantes 2