Addere to talværdier fra to strenge i Java 1,1,6

hoppendekanin
Antal: 485
Tilmeldt:
16-09-2007
User is offline
Addere to talværdier fra to strenge i Java 1,1,6

Jeg er løbet ind i et mindre problem. Det er, at jeg ikke kan få Java 1,1,6 til at addere to værdier. Man skal skrive de to talværdier i to textarea´er (tekstfelter), hvorpå min applikation skal lægge de to talværdier sammen og udskrive dem.
Kodestumpen ser sådan ud:

    String vaerdi1 = felt1.getText();
    String vaerdi2 = felt2.getText();
    String facit = (vaerdi1+vaerdi2);
    textfelt.setText(facit);

Det som min applikation gør er, at hvis jeg har angivet værdien 1 i felt1 og værdien 2 i felt 2, så udskriver applikationen "21" i stedet for "3". Nogle, der ved, hvad der kan være galt ?


Kresten Kjaer
Kresten Kjaer's picture
Antal: 342
Tilmeldt:
16-09-1991
User is offline
Re: Addere to talværdier fra to strenge i Java 1,1,6

Du får et String objekt, det skal du have lavet om til en Integer.
String facit = (Integer.parseInt(felt1.getText()) + Integer.parseInt(felt2.getText()))

Bemærk at java gerne selv skulle caste tilbage til String.

---
Miracle.dk - we dare, share & care.


divineant
divineant's picture
Antal: 666
Tilmeldt:
26-06-2007
User is offline
Re: Addere to talværdier fra to strenge i Java 1,1,6

Du prøver på at addere 2 strenge istedet for 2 integers.


hoppendekanin
Antal: 485
Tilmeldt:
16-09-2007
User is offline
Re

Når jeg prøvet at indsætte:
Integer.parseInt(felt1.getText()) + Integer.parseInt(felt2.getText());
men så siger programmet, at der mangler ")" i linjen.


arnbak
Antal: 91
Tilmeldt:
06-12-2002
User is offline
Prøv det her: int result =

Prøv det her:

int result = Integer.parseInt(felt1.getText()) + Integer.parseInt(felt2.getText());

hoppendekanin
Antal: 485
Tilmeldt:
16-09-2007
User is offline
Tak

#4
Tak, det virker!
Men nu bruger jeg kommatal i applikationen, så når jeg prøver at erstatte "int" med double, så vil den stadigvæk ikke regne med kommatal


Anonym7
Antal: 863
Tilmeldt:
13-06-2004
User is offline
Re: Addere to talværdier fra to strenge i Java 1,1,6

Med double er du på ingenmandsland fra min side... Har ikke tid til at skifte koden ud :) Sig goddag til typestærkt sprog :D

Nu kan man jo skrive alt hvad man vil i et tekstfelt så her er lidt kode til at håndtere
1) tjek om det *er* et tal
2) konverter tallet og brug det

public static boolean isNumber(String str) {
        try {
            Integer.parseInt(str);
            return true;
        } catch ( NumberFormatException  e) {
            return false;
        }
    }
int res=0;
if ( isNumber( felt1.getText() ) && isNumber( felt2.getText() ) ) {
   try {
      res = Integer.parseInt(felt1.getText());
      res += Integer.parseInt(felt2.getText());
   } catch ( NumberFormatException e ) {} //sker ikke da isNumber tjekker for os

nu skulle res gerne holde værdien :) husk selv at håndtere hvad der skal ske, såfremt if-blokken ikke køres (da et af felterne IKKE er en int!)


noerbo
Antal: 13
Tilmeldt:
30-04-2006
User is offline
Re: Addere to talværdier fra to strenge i Java 1,1,6

Du kan gøre det med double på følgende måde. Hvis du vil give ordentlige fejlbeskeder skal du nok have flere typer exceptions.

public class test {
    public static void main(String args[]) {
String nr1 = "3.14";
String nr2 = "2.67";
double res = 0.0;

try {
    res = Double.valueOf(nr1).doubleValue() + Double.valueOf(nr2).doubleValue();
}

catch(Exception exc) {
    System.out.println("Error");
    System.exit(-1);
}
System.out.println(res);
    }
}