Erro de conversão de dados (String p/ float)

Em um exercício de IMC não consigo fazer aceitar o peso nem a altura com “,” invés de “.”

o replace não funciona.

aguem pode me ajudar?

[code]package imc;
import javax.swing.JOptionPane;

public class imc {

/**
 * @param args
 */
public static void main(String[] args) {
	
	float peso;
	float altura;
	String valorPeso = JOptionPane.showInputDialog("Qual o seu Peso?");
	String valorAltura = JOptionPane.showInputDialog("Qual a sua Altura?");
	valorPeso.replace("," , ".");
	valorAltura.replace(",",".");
	peso = Float.parseFloat(valorPeso);
	altura = Float.parseFloat(valorAltura);
	
	System.out.println("Seu imc é: " + peso/Math.pow(altura, 2));

}

}
[/code]

Error:

Exception in thread “main” java.lang.NumberFormatException: For input string: “84,5”
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at imc.imc.main(imc.java:22)

    package imc;  
    import javax.swing.JOptionPane;  
      
      
      
    public class imc {  
      
        /** 
         * @param args 
         */  
        public static void main(String[] args) {  
             // se vai fazer contas, não use float - use sempre double, long ou BigDecimal.
             // Reserve float apenas para algumas APIs (como algumas de Java2D que requerem float)
            double peso;  
            double altura;  
            String valorPeso = JOptionPane.showInputDialog("Qual o seu Peso?");  
            String valorAltura = JOptionPane.showInputDialog("Qual a sua Altura?");  
            // Note que strings são imutáveis, portanto você tem de substituí-las da seguinte forma:
            valorPeso = valorPeso.replace("," , ".");  
            valorAltura = valorAltura.replace(",",".");  
            peso = Double.parseDouble(valorPeso);  
            altura = Double.parseDouble(valorAltura);  
              
            System.out.printf("Seu imc é: %.2f\n", peso/Math.pow(altura, 2));  
      
        }  
      
    }  

Strings são objetos imutaveis, isso significa que quando voce da um .replace() ela n muda a string, apenas cria uma referencia a uma nova string, entao pra funcionar vc teria que fazer o seguinte:

valorPeso=valorPeso.replace("," , ".");  
valorAltura=valorAltura.replace(",",".");

entendido. Obrigado!. Funcionou perfeitamente.