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

Video Aulas de Java já disponíveis no 4Shared

Turma segue as video aulas já disponíveis para download no 4Shared , espero que vocês gostem das aulas e por favor postem um comentario no blog dizendo o que vc's acharam preciso desse feed back para o constante aprimoramento das aulas . Basta escolher o arquivo clickar  no link para download ( tenha paciencia os arquivos são grandes ) <p>&lt;p&gt;&amp;amp;amp;amp;lt;p&amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;gt;se&amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;gt;&lt;/p&gt;</p> Se a Janela de Download acima não funcionar tente acessar os arquivos usando o seguinte link http://www.4shared.com/dir/34812571/bf01348d/VideoAulas.html Bom estudo  :-)

Notícias da UFSC » UFSC é segunda universidade brasileira melhor colocada no Webometrics

Notícias da UFSC » UFSC é segunda universidade brasileira melhor colocada no Webometrics : A Universidade Federal de Santa Catarina passou à segunda instituição brasileira melhor qualificada no  Ranking Web of World Universities , sendo a primeira universidade federal brasileira no levantamento . No primeiro lugar geral se mantém a USP. No ranking passado, publicado no mês de janeiro, a UFSC ocupava a quarta posição. Na classificação para a América Latina, em que figurava como quinta universidade,  passou a terceira colocada. E no ranking mundial está entre as cem universidades do mundo: subiu da 129ª posição para a 98ª. Harvard University, Massachusetts Institute of Technology e Stanford University se mantêm no topoda classificação mundial. Entre as brasileiras, lideram aUniversidade de São Paulo (USP), UFSC e Universidade Estadual de Campinas (Unicamp)

Serialização de objetos I - Salvando objetos em arquivos

Serialização: como salvar seus objetos Java par utilizar quando precisar  Serialização de objetos é a possibilidade de salvar uma cópia completa de um objeto ou de uma coleção de objetos em um fluxo de saída (arquivo externo), de modo que o objeto pode ser recriado a partir da cópia serializada  quando necessário . A serialização de objetos Java,  fornece um recurso para transformar um grupo ou um único objeto em um fluxo de bits, ou um array de bytes para armazenar ou enviar pela rede,  de modo que o  referido fluxo de bits ou uma matriz de bytes pode ser transformado novamente em objetos Java. O processo de serialização também é conhecido como marshaling de um objeto, e de-serialização é conhecido como un-marshaling. Assim a serialização oferece os seguintes benefícios: Um sistema para persistência de objetos, ou seja, escrever as suas propriedades em arquivos externos ou discos, ou salvá-las em um banco de dados. Um sistema para chamadas d...