GARANTIR DESCONTO

Fórum Como posso faço para diferenciar Maiúscula de minuscula na escolha de um menu? #569774

27/05/2011

0

Olá, tenho a seguinte dúvida: tenho um menu que em vez de números eu uso letras, no caso eu defini letra maiúscula, mas quero também que o usuário use minusculas, por exemplo :
do{System.out.println("Escolha a opçao:");
         System.out.println("A - Faça isso:");
         System.out.println("B - Faça aquilo:");
         System.out.println("C - Sair:");
         resp1=sc.next();

         switch(resp1.charAt(0)){
             case 'A':
         menuA();
         break;
             case 'B':
         menuB();
         break;
             case 'C':
        System.exit(0);
Como devo proceder? posso usar if?
Helio Silva

Helio Silva

Responder

Posts

27/05/2011

Paulo Santana

Ola heliopiracicaba. Eu estou postando um exemplo.

// Este exemplo mostra como comparar strings sem
// considerar letras maiúsculas e minúsculas

public class Estudos{
  public static void main(String[] args){
    String s1 = "GOSTO de Java";
    String s2 = "gosto de java";
    
    if(s1.equalsIgnoreCase(s2))
      System.out.println("As duas strings sao iguais");
    
    System.exit(0);
  }
} 
Aguardo retorno
Responder

Gostei + 0

27/05/2011

Helio Silva

@Paulo Entendi, mas no meu caso vou precisar declarar as duas variáveis ? "A" e "a" ? ou não necessariamente??
Responder

Gostei + 0

27/05/2011

Helio Silva

[quote="heliopiracicaba"]Olá, tenho a seguinte dúvida: tenho um menu que em vez de números eu uso letras, no caso eu defini letra maiúscula, mas quero também que o usuário use minusculas, por exemplo :
do{System.out.println("Escolha a opçao:");
         System.out.println("A - Faça isso:");
         System.out.println("B - Faça aquilo:");
         System.out.println("C - Sair:");
         resp1=sc.next();

         switch(resp1.charAt(0)){
             case 'A':
         menuA();
         break;
             case 'B':
         menuB();
         break;
             case 'C':
        System.exit(0);
Como devo proceder? posso usar if?
o switch permite vários case, por isso que precisa do break:
    do {
        System.out.println("Escolha a opçao:");
        System.out.println("A - Faça isso:");
        System.out.println("B - Faça aquilo:");
        System.out.println("C - Sair:");
        resp1 = sc.next();

        switch (resp1.charAt(0)) {
            case 'A':
            case 'a':
                menuA();
                break;
            case 'B':
            case 'b':
                menuB();
                break;
            case 'C':  case 'c':    // outra notação (prefiro as anteriores)
                System.exit(0);
        }
        ...
Opção menos performante/elegante, transformar a entrada para maiúsculo:
    do {
        System.out.println("Escolha a opçao:");
        System.out.println("A - Faça isso:");
        System.out.println("B - Faça aquilo:");
        System.out.println("C - Sair:");
        resp1 = sc.next();

        switch (resp1.toUpperCase().charAt(0)) {
            case 'A':
                menuA();
                break;
            case 'B':
                menuB();
                break;
            case 'C':
                System.exit(0);
        }
        ...
[[]]
Responder

Gostei + 0

27/05/2011

Helio Silva

@simu , @Paulo Muito obrigado pela dica, ajudou muito! Boa sexta pra vcs! abs.
Responder

Gostei + 0

27/05/2011

Douglas Eric

Você quer "diferenciar" ou "não diferenciar"? pelo título do seu tópico, dá a idéia errada. O java é case sensitive, então ele já diferencia. Se você quer que tanto maiuscula quanto minuscula façam a mesma coisa, então você quer NÃO diferenciar. O jeito mais fácil de fazer isso é, trocar
 resp1=sc.next();
por
 resp1=sc.next().toUpperCase();  
O método toUpperCase() da classe String, retorna a mesma String, porém, com todas as letras maiusculas.
Responder

Gostei + 0

27/05/2011

Helio Silva

[quote="sekkuar"]Você quer "diferenciar" ou "não diferenciar"? pelo título do seu tópico, dá a idéia errada. O java é case sensitive, então ele já diferencia. Se você quer que tanto maiuscula quanto minuscula façam a mesma coisa, então você quer NÃO diferenciar. O jeito mais fácil de fazer isso é, trocar
 resp1=sc.next();
por
 resp1=sc.next().toUpperCase();  
O método toUpperCase() da classe String, retorna a mesma String, porém, com todas as letras maiusculas.
Obrigado Sekkuar, Realmente não tinha atentado para esse fato, vou me policiar e espero não fazer isso novamente. Farei o possível para que o tópico fique bem explicado e o assunto também! vlw.
Responder

Gostei + 0

28/05/2011

Helio Silva

Resolvido, utilizei as dicas do Simu e Sekkuar! valeu mais uma vez!!! []´s
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar