Duvida para criação e leitura de vetor e matriz

3 respostas
Campacci

Saudações galera,

Sou iniciante em JAVA, foi me passado um exercicio para começar a praticar. Porem estou com duvidas ... se alguem puder me ajudar ficarei agradecido.

O exercicio é o seguinte: Receba do usuário o nome de um mês. Exiba o número equivalente.

Fiz o codigo abaixo, que inclusive já resolve.

import java.util.Scanner;

public class Exe6 {

	
	public static void main(String[] args) {
		
		//Le a entrada do System.in (Entrada do teclado).	
		Scanner teclado = new Scanner(System.in);
		
		
		
		String mes;
		 
        System.out.println("Digite o nome do mês:");
        mes = new Scanner (System.in).next();
 
        if(mes.equalsIgnoreCase("Janeiro")){
            System.out.println("O Número do mês é 1");
        }
        else{
            if (mes.equalsIgnoreCase("Fevereiro")){
                System.out.println("O Número do mês é 2");
            }
            else{
                if(mes.equalsIgnoreCase("Março")){
                    System.out.println("O Número do mês é 3");
                }
                else{
                    if(mes.equalsIgnoreCase("Abril")){
                        System.out.println("O Número do mês é 4");
                    }
                    else{
                        if(mes.equalsIgnoreCase("Maio")){
                            System.out.println("O Número do mês é 5");
                        }
                        else{
                            if(mes.equalsIgnoreCase("Junho")){
                                System.out.println("O Número do mês é 6");
                            }
                            else{
                                if(mes.equalsIgnoreCase("Julho")){
                                    System.out.println("O Número do mês é 7");
                                }
                                else{
                                    if(mes.equalsIgnoreCase("Agosto")){
                                        System.out.println("O Número do mês é 8");
                                    }
                                    else{
                                        if(mes.equalsIgnoreCase("Setembro")){
                                            System.out.println("O Número do mês é 9");
                                        }
                                        else{
                                            if(mes.equalsIgnoreCase("Outubro")){
                                                System.out.println("O Número do mês é 10");
                                            }
                                            else{
                                                if(mes.equalsIgnoreCase("Novembro")){
                                                    System.out.println("O Número do mês é 11");
                                                }
                                                else{
                                                    if(mes.equalsIgnoreCase("Dezembro")){
                                                        System.out.println("O Número do mês é 12");
                                                    }
                                                    else{
                                                        System.out.println("Digite corretamente!");
                                                    }
                                                }
                                            }
                                        }
                                    }    
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

Obs: Porem eu acredito que deve haver uma maneira mais facil ... por exemplo, criar o vetor e inserir os mesês apartir da posição 1. Quando for exibir o número equivalente ele exibiria a posição do vetor onde está armazenado o nome do mês que foi digitado. É possivel fazer isso??? Ou só existe a maneira que eu fiz acima??

Comecei, mais estou com muita dificuladade para continuar e acredito que eu não esteja começando da maneira correta.
Criei o vetor corretamente? E como inserir os meses?
Como fazer a impressão do indice ou posição do vetor?

Poderiam me dar um exemplo em matriz?

public class Exe6 {

	
	public static void main(String[] args) {
		
		//Le a entrada do System.in (Entrada do teclado).	
		Scanner teclado = new Scanner(System.in);
		
		
                // Aqui eu criei o vetor, não sei se estou fazendo certo.
                String meses[]  = new String[12];

Nossa ... kkkk é muita pergunta né kkkkkk
Se eu não fui claro em alguma parte, me digam ... tento explicar de outra maneira.
Bom galera, espero que consigam me ajudar.

Abraços.

3 Respostas

peerless

Se a idéia é usar arranjos (array), você pode fazer assim:

Pré-cadastrar seus meses:

String [] meses = new String[12]; meses[0] = "Janeiro"; //sim, em java qualquer tipo de colecao tem sua primeira posicao sendo zero e ultima sendo "tamanho-1" meses[1] = "Fevereiro"; etc.

Então, após o usuario entrar com o mês, você varre o arranjo em busca do que ele digitou:

for (int i = 0; i < meses.length; i++) { if (digitado.equalsIgnoreCase(meses[i])) { System.out.println("O numero é: " + i+1); //+1 devido para normalizar o mes :) System.exit(0); //sai do programa. } }

É mais ou menos por aí! Depois tu pode observar a estrutura de elementos mais avançados, como a interface Map, por exemplo.

Campacci

Opa …
Vlw colega, ajudou muito …

Agora eu consigo ter uma ideia e o resto eu continuo.

Não sei nem como agradecer … vlw mesmo.

Abraços.

M

Vc também poderia usar um HashMap, e inserir os valores com a chave nome, e o valor número:

HashMap<String, Integer> meses = new HashMap<String, Integer>();
meses.put("Janeiro", 1);
meses.put("Fevereiro", 2);
...

Assim quando vc tentar pegar o valor:

meses.get("Janeiro");
meses.get("Foo");

A primeira linha vai retornar 1, e a segunda, null.

:smiley:

Criado 5 de dezembro de 2010
Ultima resposta 6 de dez. de 2010
Respostas 3
Participantes 3