Desafio java número 4 :|

Fazer uma Classe JAVA que receba de parâmetro a String “11+2-4+1-9+8” e retorne o resultado.

Não clique, ou leia, abaixo antes de tentar.

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Já tentou?
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Segue o meu código

package com.byiorio;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/***
 * 
 * @author Lucas iorio:
 * www.byiorio.com
 *
 */
public class Calculator {
	double total = 0;

	public Calculator(String frase) throws Exception {
		String sinal = "+"; // Sempre soma o primeiro numero

		Pattern pattern = Pattern.compile("[0-9]+");
		Matcher matcher = pattern.matcher(frase);
		while (matcher.find()) {
			// PEGANDAO O NUMERO
			double numero = Double.parseDouble(frase.substring(matcher.start(),
					matcher.end()));

			// EFETUANDO A OPERACAO
			if ("+".endsWith(sinal)) {
				addTotal(numero);
			} else if ("-".endsWith(sinal)) {
				removeTotal(numero);
			} else {
				throw new Exception("Sinal incorreto");
			}

			// PEGANDO O PROXIMO SINAL
			if (matcher.end() + 1 < frase.length()) {
				sinal = frase.substring(matcher.end(), matcher.end() + 1);
			}
		}

	}


	private void addTotal(double numero) {
		total += numero;
	}

	private void removeTotal(double numero) {
		total -= numero;
	}

	public double getTotal() {
		return total;
	}
	
	
	
	// INICIANDO PROGRAMA
	public static void main(String[] args) throws Exception {
		// Passando a expressao desejada
		Calculator conta = new Calculator("11+2-4+1-9+8");
		
		// Mostrando o  total da conta
		System.out.println(conta.getTotal());
	}

}

2 comentários em “Desafio java número 4 :|

  • 6 de março de 2012 em 13:15
    Permalink

    this sounds good and need to read more about it.

    Resposta
  • 6 de março de 2012 em 16:03
    Permalink

    i just found this blog and have high hopes for it to continue. keep up the great work, its hard to find good ones.

    Resposta

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Blue Captcha Image
Atualizar

*

Facebook

Get the Facebook Likebox Slider Pro for WordPress
WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera