Me ajudem! Verificação de string e conversão para Double

2 respostas
V

:?: Preciso saber como verificar uma string e depois converter pra double usando somente comandos do/while for e if

Abaixo segue o código do programa em que estou usando somente JOptionPane, preciso fazer uma soma de vários valores e verificar que o número, por exemplo, 8.888.88 não pode ser convertido, somente pode ser convertido pra double os números que possuirem apenas 1 ponto, por exemplo 8.888

package trabalho1;
import javax.swing.JOptionPane;


public class Trabalho1 {
  public static void main(String[] args) {
    String num1, numtermos, verString, op, juros;
    int contponto=0, fat=3;
    boolean continua=true, erro=false;
    double ntermos, tercalc,n1,n2, resultado=1, soma=0;

op=JOptionPane.showInputDialog("Informe a operação a ser realizada \n( + ) para soma \n( - ) para subtração \n( / ) para divisão \n( * ) para multiplicação \n( S ) para seno \n( C ) para coseno \n( J ) para juros compostos \n( E ) para sair");



     if (op.equals("+")){
       do {
             erro=false;
             numtermos = JOptionPane.showInputDialog(
                 "Quantos números deseja somar?");

             for (int i=0; i<numtermos.length(); i++){
               if (numtermos.charAt(i)=='.'){
                 erro=true;
               }

               if (numtermos.charAt(i) >= '0' && numtermos.charAt(i) <= '9') {
                 ;
               }
               else
                 erro = true;

             }

               if (erro==true){
                 verString = JOptionPane.showInputDialog(
                   "Valor digitado incorreto. \nDeseja digitar novamente?(S/N)");
                 if (verString.equals("s") || verString.equals("S"))
                   erro = true;
                 else if (verString.equals("n") || verString.equals("N"))
                   erro = false;
               }



          }while (erro == true);
          tercalc = Integer.parseInt(numtermos);

          do {
            continua=true;
            erro=false;
            num1 = JOptionPane.showInputDialog("Informe o valor " +
                                               (contponto + 1));
            for (int i = 0; i < num1.length(); i++) {

              if (num1.charAt(i) == '.' && num1.charAt(i+1)=='.') { // verificar ponto  ex: 8.888.8(não pode ser convertido
                  erro=true;

                }


              if (num1.charAt(i) == '+' || num1.charAt(i) == '-') {
                if (i >= 1) {
                  erro = true;
                }
              }
              if (num1.charAt(i) >= 'a' && num1.charAt(i) <= 'z') {
                erro = true;
              }
            }

            if (erro == true) {
              verString = JOptionPane.showInputDialog(
                  "Valor digitado incorreto. \nDeseja digitar novamente?(S/N)");
              if (verString.equals("s") || verString.equals("S")){
                continua = true;
              }
              else if (verString.equals("n") || verString.equals("N")){
                erro = false;
                System.exit(0);
              }
            }
            if (erro==false){
               contponto++;
               soma=soma + Double.parseDouble(num1);
            }
          }while (continua==true && contponto<tercalc);

          if (contponto == tercalc){
            JOptionPane.showMessageDialog(null, " O resultado da soma é: " + soma);
            contponto=0;
            soma=0;
          }

     }

[color="red"]editado para conter BBcode code por JuJo[/color]

2 Respostas

F

Tipo, assim ?

class Teste {
	
    public static void main(String [] arg){
		
        double num = 0;
		
        try{
             num = Double.parseDouble(arg[0]);
             System.out.println(num);
        } catch (NumberFormatException e){
	System.out.println("Formato incorreto !");
        } catch (Exception e){
	e.printStackTrace();
        }
    }
}
C

Quando vc for postar os seus códigos idente-os ( recue-os ), pois fica melhor para o pessoal aqui ler eles e responder a sua pergunta.

Mas a respeito do seu códio ai vai o codigo de como converter a String em um double

import javax.swing.JOptionPane;

public class Converter {
   public static void main( String[] args ) {

      String entrada;
      double num;

      entrada = JOptionPane.showInputDialog(  " Digite o número a ser convertido " );

// aqui ele converte em Double      
      num = Double.parseDouble( entrada );

      System.exit( 0 );
   }
}
Criado 22 de abril de 2004
Ultima resposta 22 de abr. de 2004
Respostas 2
Participantes 3