Probleem java kan operator / niet in string

Status
Niet open voor verdere reacties.

IanJava

Gebruiker
Lid geworden
10 jan 2011
Berichten
10
Ik ben nieuw bij java en ik zit met een probleem.Ik probeer een soort applet te maken voor het berekenen van procenten (gewoon voor de oefening). Het probleem is dat hij de / operator niet kan gebruiken bij een string.
Dit is de applet:


Code:
import java.util.Scanner;

public class RekenMachine {

    
    public static void main(String[] args) {
        
        Scanner user_input=new Scanner(System.in);

        
        System.out.println("Getal 1:");
        String First_Number=user_input.next();

        System.out.println("Getal 2:");
        String Second_Number=user_input.next();

        String Answer=First_Number/Second_Number;  //hier komt de error
        System.out.println(Answer);                         //dat ik / niet kan gebruiken

    }

}


Als iemand mij kan helpen bedankt.
groet, Ian :D
 
Het schort hier en daar nog aan je code. De eerste fout die je maakt is dat je first_number en second_number van het type String maakt. Sommige mensen zeggen wel dat wiskunde een taal op zich is, maar stukken tekst kun je niet door elkaar delen(oke sorry voor de slechte woordgrap, maar kon het niet laten);) Als je wilt dat de gebruiker hele getallen ingeeft, dan moet je het ongeveer zo maken.
Code:
int First_Number = Integer.parseInt(user_input.next()); //hetzelfde voor de andere
Nu is First_Number een geheel getal en kan je er berekeningen mee uitvoeren.
Met de functie Integer.parseInt maak je van een stuk tekst een getal. Deze geeft trouwens wel een error als de gebruiker i.p.v een getal iets anders invult. Ten tweede is het niet nodig dat de functie System.out.println als parameter een String meekrijgt, het mag net zo goed een integer zijn, dus je kunt er beter het volgende van maken.
Code:
System.out.println(First_number / Second_Number);
Als je het echt netjes wil doen moet je ook nog de eventuele exceptions bij het inlezen van de getallen afvangen. De code in totaal
Code:
import java.util.Scanner;

public class RekenMachine {

    public static void main(String[] args) {
        
        Scanner user_input=new Scanner(System.in);
        try {
                System.out.println("Getal 1:");
                int First_Number = Integer.parseInt(user_input.next());

                System.out.println("Getal 2:");
                int Second_Number = Integer.parseInt(user_input.next());

                System.out.println(First_Number / Second_Number);
        }
        catch(NumberFormatException e) {
                System.out.println("Je hebt geen getal ingevoerd!");
        } 
    }
}
 
Bedankt

Het schort hier en daar nog aan je code. De eerste fout die je maakt is dat je first_number en second_number van het type String maakt. Sommige mensen zeggen wel dat wiskunde een taal op zich is, maar stukken tekst kun je niet door elkaar delen(oke sorry voor de slechte woordgrap, maar kon het niet laten);) Als je wilt dat de gebruiker hele getallen ingeeft, dan moet je het ongeveer zo maken.
Code:
int First_Number = Integer.parseInt(user_input.next()); //hetzelfde voor de andere
Nu is First_Number een geheel getal en kan je er berekeningen mee uitvoeren.
Met de functie Integer.parseInt maak je van een stuk tekst een getal. Deze geeft trouwens wel een error als de gebruiker i.p.v een getal iets anders invult. Ten tweede is het niet nodig dat de functie System.out.println als parameter een String meekrijgt, het mag net zo goed een integer zijn, dus je kunt er beter het volgende van maken.
Code:
System.out.println(First_number / Second_Number);
Als je het echt netjes wil doen moet je ook nog de eventuele exceptions bij het inlezen van de getallen afvangen. De code in totaal
Code:
import java.util.Scanner;

public class RekenMachine {

    public static void main(String[] args) {
        
        Scanner user_input=new Scanner(System.in);
        try {
                System.out.println("Getal 1:");
                int First_Number = Integer.parseInt(user_input.next());

                System.out.println("Getal 2:");
                int Second_Number = Integer.parseInt(user_input.next());

                System.out.println(First_Number / Second_Number);
        }
        catch(NumberFormatException e) {
                System.out.println("Je hebt geen getal ingevoerd!");
        } 
    }
}

Bedankt voor je reactie.
Ik zie dat er inderdaad heel veel manieren zijn om dit te doen. Ik had het op gegeven moment verbetert naar JOptionPane swing gedaan. Ik vond het wel handig als er een schermpje oppupte. Ik zie ook iets over een exception. Dat begreep ik niet helemaal. Zorgt dat er nou voor dat als de user niks invoert dat hij dan de printline die je eronder heb gezet print?

Iig heel erg bedankt, ik heb er veell aan gehad.

Groet, Ian :)
 
Exception is een error die ontstaat tijdens het draaien van een programma. Je code bevat dan geen fouten. Exceptions ontstaan als je bijvoorbeeld een bewerking uit probeert te voeren op iets wat niet bestaat, of als je de tiende letter van een woord probeert te weten te komen, terwijl het woord maar 3 letters heeft ofzo.

Exceptions kun je afvangen door stukken code die zulke fouten kunnen veroorzaken te omringen met een try-catch blok, maar dat wordt pas belangrijk als je voor andere gebruikers apps gaat maken. Voor nu kun je er voor jezelf wel vanuit gaan dat je goede gebruikersinvoer geeft enz...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan