Validar Arrays

6 respostas
Guto_Magalhaes

Pessoal, eu queria fazer uma classe de validação, com um metodo booleano. Eu vou validar uma vetor de Strings, e ver se estas strings correspondem a numeros. Se todos corresponderem a numeros, eu retorno true, senao, false. Alguem sabe como eu posso validar estes strings e ver se sao numeros?

6 Respostas

maquiavelbona

Tenta fazer um parse como um tipo bem genérico como o double e ver se não ocorre um NumberFormatException.

Até!

vanzella
import java.util.Collection;
import java.util.Iterator;
import java.util.Vector;


public class TesteString {

	public static void main(String arg[])
	{
		Collection lista = new TesteString().popularLista();
		Collection listaRemover = new Vector();
		Iterator it = lista.iterator();
		String valor = null;
		while(it.hasNext())
		{
			try{
				valor = (String) it.next();
				Double.valueOf(valor).doubleValue();
			}
			catch( NumberFormatException e)
			{
				listaRemover.add(valor);
			}
		}
		lista.removeAll(listaRemover);
	}
	
	public Collection popularLista()
	{
		Collection lista;
		lista = new Vector();
		lista.add("10");
		lista.add("string");
		lista.add("15");
		lista.add("nome");
		return lista;
	}
}
vanzella

Foi mau, rsrs

é só isso que vc precisa

import java.util.Collection;
import java.util.Iterator;
import java.util.Vector;


public class TesteString {

	public static void main(String arg[])
	{
		TesteString testeString = new TesteString();
		Collection lista = testeString.popularLista();
		System.out.println(testeString.validarLista(lista));
	}
	
	public boolean validarLista(Collection lista)
	{		
		Iterator it = lista.iterator();
		boolean teste = true;
		while(it.hasNext())
		{
			try{
				Double.valueOf((String)it.next()).doubleValue();
			}
			catch( NumberFormatException e)
			{
				teste = false;
			}
		}
		return teste;
	}
	
	public Collection popularLista()
	{
		Collection lista;
		lista = new Vector();
		lista.add("10");
		lista.add("10");
		lista.add("15");
		lista.add("10");
		return lista;
	}
}
maquiavelbona

No catch você pode colocar um break para não ter que percorrer toda array sendo que sabes que já está errada.

Até!

vanzella

Boa, tinha esquecido desse detalhe, ganha se performance com isso.

Guto_Magalhaes

Ae pessoal, valew pela ajuda. Consegui resolver o problema.

Criado 19 de julho de 2007
Ultima resposta 20 de jul. de 2007
Respostas 6
Participantes 3