Ajuda com String. Pergunta dificil ou Idiota?

5 respostas
T

Por favor amigos, mais uma vez preciso da ajuda de vcs, nao osu mt experiente em java, por isso to com dificuldade em fazer isso, vamos la.

recebo uma hora e quero saber qual a hora mais comum no sistema, existe outra maneira de fazer isso?
ou terei que dps disso que ja fiz comparar todas elas? lembrando que sao do tipo String.

public double HoraMovimento(String data){
	    		   String hora;
	    		   int um=0,dois=0,tres=0,quatro=0,cinco=0,seis=0,
	    		   sete=0,oito=0,nove=0,dez=0,onze=0,doze=0,treze=0,quatorze=0,
	    		   quinze=0,dezesses=0,dezessete=0,dezoito=0,dezenove=0,vinte=0,
	    		   vum=0,vdois=0,vtres=0,vquatro=0;
	    		   
	    		  int i;
	    		   
	    		   for (i=0;i<numAtualVeiculos;i++){
	    			  if (data.equals(veiculos[i].data)){
	    				 
	    				hora = getHora(data);
	    				
	    				if(hora.equals("01"))
	    					um++;
	    				if(hora.equals("02"))
	    					dois++;
	    				if(hora.equals("03"))
	    					tres++;
	    				if(hora.equals("04"))
	    					quatro++;
	    				if(hora.equals("05"))
	    					cinco++;
	    				if(hora.equals("06"))
	    					seis++;
	    				if(hora.equals("07"))
	    					sete++;
	    				if(hora.equals("08"))
	    					oito++;
	    				if(hora.equals("09"))
	    					nove++;
	    				if(hora.equals("10"))
	    					dez++;
	    				if(hora.equals("11"))
	    					onze++;
	    				if(hora.equals("12"))
	    					doze++;
	    				if(hora.equals("13"))
	    					treze++;
	    				if(hora.equals("14"))
	    					quatorze++;
	    				if(hora.equals("15"))
	    					quinze++;
	    				if(hora.equals("16"))
	    					dezesses++;
	    				if(hora.equals("17"))
	    					dezessete++;
	    				if(hora.equals("18"))
	    					dezoito++;
	    				if(hora.equals("19"))
	    					dezenove++;
	    				if(hora.equals("20"))
	    					vinte++;
	    				if(hora.equals("21"))
	    					vum++;
	    				if(hora.equals("22"))
	    					vdois++;
	    				if(hora.equals("23"))
	    					vtres++;
	    				if(hora.equals("24"))
	    					vquatro++;
	    			  }

5 Respostas

ViniGodoy

Sim, você pode usar um array e o método Integer.parseInt.

//Cria um array que vai de horas[0] até horas[23] int horas[] = new int[24]; //Converte a string hora para um inteiro int horaInt = Integer.valueOf(hora); //Soma na posição da string fornecida -1 (o array começa em 0) mais um. //Assim, horas[0] contém a soma de vezes que hora1 foi //digitado, hora[1] contém o número de vezes da segunda hora e assim por diante. horas[horaInt-1]++;

danicuki

Você pode usar um Map, algo parecido com

Map<String,Integer> horas = new HashMap<String,Integer>();
horas.put(hora, horas.get(hora) + 1);
ViniGodoy

Cuidado, a primeira chamada ao get vai retornar null, e não será possível somar +1.

Para seu exemplo funcionar, o jeito mais fácil é inicializar o mapa:

Map<String,Integer> horas = new HashMap<String,Integer>(); for (int i = 1; i <= 24; i++) { horas.put(""+i, 0); } horas.put(hora, horas.get(hora) + 1);

T

que isso galera, valeu pela a ajuda de vcs.

acho que vou ficra com o vetor que é mais simples para mim.

T

mas e agora? como faço a comparação?

Criado 28 de agosto de 2008
Ultima resposta 28 de ago. de 2008
Respostas 5
Participantes 3