Re:Validar se String é um Double

Nenhuma String é um double…

Se você quer saber se uma string é a representação numérica de um double, você pode tentar algo como:

public static boolean isNumeric (String s) {
    try {
        Double.parseDouble (s); 
        return true;
    } catch (NumberFormatException ex) {
        return false;
    }
}

Apesar do Try/Catch, é bem mais rápido que usar uma expressão regular.

Isso pode ser muito melhorado, mas dá pra ter uma noção.

boolean isDouble = false; try { Double.parseDouble(aSuaString); isDouble = true; } catch (Exception e) { isDouble = false; }

Uma forma prática seria vc tentar converter a String em Double e tratar um possível Exception que possa ser lançada:

public boolean isDouble(String str){
	try{
		Double.parseDouble(str);
	}catch(Exception e){
		return false;
	}
	return true;
}

Uai, você copiou direitinho meu código? Eu compilei e ele funciona a partir do Java 1.2. (No Java 1.1, ou seja, Microsoft, você teria de usar

 public static boolean isNumeric (String s) {
     try {
         Double.valueOf (s); 
         return true;
     } catch (NumberFormatException ex) {
         return false;
     }
 }

Como regra geral, dona Paula, tente não criar classes com nomes iguais a classes do JDK, principalmente do pacote java.lang. Você já viu que deu problema com a classe String.

Como a língua falada no Brasil é o português, isso facilita bastante a criação de nomes de classes cujos nomes não batem. Por exemplo, “Cadeia” em vez de String.

Uma lista das classes de java.lang:


AbstractMethodError, Appendable, ArithmeticException,
ArrayIndexOutOfBoundsException, ArrayStoreException,
AssertionError, Boolean, Byte, Character,
Character.Subset, Character.UnicodeBlock, CharSequence,
Class, ClassCastException, ClassCircularityError,
ClassFormatError, ClassLoader, ClassNotFoundException,
Cloneable, CloneNotSupportedException, Comparable,
Compiler, Deprecated, Double, Enum,
EnumConstantNotPresentException, Error, Exception,
ExceptionInInitializerError, Float, IllegalAccessError,
IllegalAccessException, IllegalArgumentException,
IllegalMonitorStateException, IllegalStateException,
IllegalThreadStateException,
IncompatibleClassChangeError, IndexOutOfBoundsException,
InheritableThreadLocal, InstantiationError,
InstantiationException, Integer, InternalError,
InterruptedException, Iterable, LinkageError, Long,
Math, NegativeArraySizeException, NoClassDefFoundError,
NoSuchFieldError, NoSuchFieldException,
NoSuchMethodError, NoSuchMethodException,
NullPointerException, Number, NumberFormatException,
Object, OutOfMemoryError, Override, Package, Process,
ProcessBuilder, Readable, Runnable, Runtime,
RuntimeException, RuntimePermission, SecurityException,
SecurityManager, Short, StackOverflowError,
StackTraceElement, StrictMath, String, StringBuffer,
StringBuilder, StringIndexOutOfBoundsException,
SuppressWarnings, System, Thread, Thread.State,
Thread.UncaughtExceptionHandler, ThreadDeath,
ThreadGroup, ThreadLocal, Throwable,
TypeNotPresentException, UnknownError,
UnsatisfiedLinkError, UnsupportedClassVersionError,
UnsupportedOperationException, VerifyError,
VirtualMachineError, Void

É claro que você não deve e não precisa decorar esta lista.

Olá pessoal…
Preciso criar um método para validar se a representação String é um Double.
Alguém poderia me ajudar?

Obrigada.

Oi pessoas…

Esta aparecendo o seguinte erro:

The method parseDouble(String) in the type Double is not applicable for the arguments (String)

Por que?

Peço desculpas thingol… erro meu…
Copiei o código igualzinho… mas o meu erro é que a minha classe chama-se String e por isso estava dando conflitos.
Mas já arrumei e esta tudo, ok!!
Valeu :thumbup: