Pular para o conteúdo principal

Laços switch com strings



Mais uma feature da versão 7 do Java, agora os laços switch suportam strings, antigamente eles só trabalhavam com números.

Muitas vezes queremos selecionar uma opção do programa com base em saída de string recebida do usuário ou outra parte do programa, mas antes do JDK7 não podíamos fazê-lo diretamente, em vez disso, precisavamos mapear as String para uma constante inteira ou uma constante char, só depois podíamos  usá-los dentro de switch.

Mas agora com JDK7 você pode usar diretamente strings dentro do switch de forma muito simples.

Vamos ver dois exemplos, no primeiro
como fazíamos antes do JDK7 e o segundo já com suporte a srtings no laço switch.


Exemplo antes do JDK7 - Mapeando opções em números


1:   String txt = JOptionPane.showInputDialog(null, "Informe uma opção:\n "+  
2:          "1 - Imprimir mensagem 2- Imprimir conta");  
3:      int op = Integer.parseInt(txt); // mapeando uma string para um inteiro  
4:      switch (op) {  
5:        case 1:  
6:          System.out.println("Ola mundo");  
7:          break;  
8:        case 2:  
9:          System.out.println(" 1 + 1 = " + (1+1));  
10:          break;  
11:        default:  
12:          System.out.println("opção não cadastrada");  
13:      }  

Veja que na linha 3  fizemos a conversão da string para um inteiro , isso era necessário porque antigamente o switch não suportava strings.

Exemplo depois do JDK7 - switch com suporte a strings


1:   String txt = JOptionPane.showInputDialog(null, "Informe uma opção:\n "+  
2:          "- Imprimir mensagem \n - Imprimir conta \n Digite sua opção");  
3:      switch (txt) {  
4:        case "Imprimir mensagem":  
5:          System.out.println("Ola mundo");  
6:          break;  
7:        case "Imprimir conta":  
8:          System.out.println(" 1 + 1 = " + (1+1));  
9:          break;  
10:        default:  
11:          System.out.println("opção não cadastrada");  
12:      }  

Agora não precisamos mais do mapeamento de string para numero ou caracter, mas podemos errar na digitação da string , nesse caso recomendo que se utilize o método .toUpperCase, assim se transforma toda a string em letra maiúscula  evitando assim esse tipo de erro (funciona também com o método toLowerCase). Veja como fica o exemplo:

1:  String txt = JOptionPane.showInputDialog(null, "Informe uma opção:\n "+  
2:          "- Imprimir mensagem \n - Imprimir conta \n Digite sua opção");  
3:      txt = txt.toUpperCase();  
4:      switch (txt) {  
5:        case "IMPRIMIR MENSAGEM":  
6:          System.out.println("Ola mundo");  
7:          break;  
8:        case "IMPRIMIR CONTA":  
9:          System.out.println(" 1 + 1 = " + (1+1));  
10:          break;  
11:        default:  
12:          System.out.println("opção não cadastrada");  
13:      }  

Dessa maneira tanto faz a forma de digitar a opção , a string sempre vai ser convertida para Maiúscula e vai funcionar  sem erros, o usuário pode digitar tudo maiúsculo ou tudo minúsculo ou misturar  e vai funcionar , só não pode digitar a frase errada.

Comentários

Postagens mais visitadas deste blog

Projetos em Sala de aula

A educação baseada em projetos vem sendo usada como uma metodologia poderosa para melhor preparar estudantes do século 21, já que leva os alunos a trabalhar em conjunto, se organizar, pesquisar e executar harmonicamente. Porém, antes de levar a metodologia para a sala de aula, será que os professores sabem como e quais projetos trabalhar em suas disciplinas? Uma dessas novidades é o  PBLU (Project Based Learning University ), plataforma gratuita que ajuda a capacitar professores para o uso de projetos em suas disciplinas, como uma forma de agregar conteúdo e motivar os estudantes. Conheça os oito pontos principais para um bom programa de aprendizagem baseada em projeto: Ter conteúdo relevante.   O objetivo da abordagem é trabalhar os conceitos-chave das disciplinas acadêmicas a partir de um projeto. Desenvolver habilidades para o século 21.   Ao longo do projeto, os alunos deverão buscar uma resposta a um problema. Para isso, eles deverão buscar referências...

Meu kit de desenvolvimento de software do dia a dia

Conjunto de 10 ferramentas do dia a dia , as que mais utilizo para desenvolvimento de software, ainda tem outras mas essa pequena lista já é bem representativa  :-) , se você tem outras sugestões de aplicativos comente no post . 1 - Java  Principal linguagem que utilizo( vocês já devem ter percebido pelos posts : -)  ) , apresar de vez em quando usar o C/C++ , bash e mais recentemente o ruby ... Java SE - Downloads | Oracle Technology Network | Oracle 2 - IDE : Netbeans  Pra mim ainda é a mais completa apresar de reconhecer que o eclipse em muitas maquinas roda bem mais rápido , prefiro o netbeans pelo conjunto de ferramentas integradas, e no geral não preciso configurar nada , estou ficando preguiçoso de ter que mexer , configurar e fuçar tutoriais para que as coisas funcionem ... em fim , vou de Netbeans . Welcome to NetBeans 3- Editor de texto generico : TextWrangler Gratuito, bom para editar HTML , scripts em bash e ruby, não é uma ferramenta do...

Encurtador de URL Seguro

Essa é para quem usa o twitter : A McAfee lançou recentemente seu próprio serviço de encurtador de URLs com um plus a mais: ele verifica, antes de redirecionar, se o site de destino contém alguma ameaça. Para quem tinha receio (com razão) em clicar em URLs encurtadas como tinyurl.com e bit.ly esta solução com certeza trará mais tranquilidade no que diz respeito a segurança. Para acessar o serviço, que ainda está em beta, basta seguir para o endereço: http://mcaf.ee/ Fonte: Info Online