Por gentileza poderiam me ajudar, não estou conseguindo converter parâmetros do tipo String para Int.
Aparece erros nas linhas: 27, 39 e 52. Sei que preciso converter para inteiro já fiz isso em um exercício anterior , mais dessa maneira converter parâmetro não sei.
public void setAno (String ano){
this.ano = Integer.parseInt(ano);
}
Segue o exercício:
Faça um programa em Java para implementar uma calculadora simples com as quatro operações básicas da matemática. Crie três métodos para cada uma das operações e cada método deverá ser sobrecarregado, pois um deles deve receber apenas dois parâmetros do tipo int, o outro apenas dois parâmetros do tipo float e o último apenas dois parâmetros do tipo String. Quando os parâmetros forem do tipo String, os mesmos deverão ser convertidos para o tipo int.
[code] package ExerciciosCapitulo08;
public class Calculadora {
public int soma (int a, int b){
return a + b;
}
public float soma (float a, float b){
return a + b;
}
public String soma (String a, String b){
return a + b;
}
public int subtracao (int a, int b){
return a - b;
}
public float subtracao (float a, float b){
return a - b;
}
public String subtracao (String a, String b){
return a - b;
}
public int divisao (int a, int b){
return a / b;
}
public float divisao (float a, float b){
return a / b;
}
public String divisao (String a, String b){
return a / b;
}
public int multiplicacao (int a, int b){
return a * b;
}
public float multiplicacao (float a, float b){
return a * b;
}
public String multiplicacao (String a, String b){
return a * b;
}
int numero = 0;
String string = "123";
numero = Integer.parseInt(string);
voce pode até tratar a excessão NumberFormatException caso o usuario entrar com dados inválidos,
por exemplo, querer converter
“a123” para numero… impossível
Os erros nas linhas 27, 39 e 57 ocorem por que estes métodos estam tendando executar operações inválidas para Strings.
Se você quiser realizar operações com caracteres numéricos você tem primeiro que converter os valores.
Eu tentei deste jeito e deu certo!
public String multiplicacao (String a, String b){
return ""+(Float.parseFloat(a) * Float.parseFloat(b));
}
Bom primeiro que se você quer converter uma String para int, o seu método também precisa retornar um int, e a conversão ficaria da seguinte forma:
public int subtracao (String a, String b) {
return Integer.valueOf(a) - Integer.valueOf(b);
}
public int divisao (String a, String b) {
return Integer.valueOf(a) / Integer.valueOf(b);
}
public int multiplicacao (String a, String b) {
return Integer.valueOf(a) * Integer.valueOf(b);
}
Acho que da maneira que você explicou é a mais correta. Pois na apostila que estou respondendo esse exercício, tem explicação de cast implícito. Pensei que não tinha como fazer a conversão sem alterar o método.