Hoe controleer je of de invoer een geheel getal is of niet in Java?

In mijn programma wil ik een integer invoer door de gebruiker. Ik wil dat er een foutmelding wordt weergegeven wanneer de gebruiker een waarde invoert die geen geheel getal is.
Hoe kan ik dit doen.
Mijn programma is om het gebied van de cirkel te vinden. Waarin de gebruiker de waarde van de straal invoert. Maar als de gebruiker een teken invoert, wil ik dat er een bericht wordt weergegeven met de melding Ongeldige invoer.

Dit is mijn code:

int radius, area;
Scanner input=new Scanner(System.in);
System.out.println("Enter the radius:\t");
radius=input.nextInt();
area=3.14*radius*radius;
System.out.println("Area of circle:\t"+area);

Antwoord 1, autoriteit 100%

Als u gebruikersinvoer krijgt met Scanner, kunt u het volgende doen:

if(yourScanner.hasNextInt()) {
    yourNumber = yourScanner.nextInt();
}

Als je dat niet bent, moet je het converteren naar int en een NumberFormatException vangen:

try{
    yourNumber = Integer.parseInt(yourInput);
}catch (NumberFormatException ex) {
    //handle exception here
}

Antwoord 2, autoriteit 22%

Je kunt het op deze manier proberen

 String input = "";
 try {
   int x = Integer.parseInt(input); 
   // You can use this method to convert String to int, But if input 
   //is not an int  value then this will throws NumberFormatException. 
   System.out.println("Valid input");
 }catch(NumberFormatException e) {
   System.out.println("input is not an int value"); 
   // Here catch NumberFormatException
   // So input is not a int.
 } 

Antwoord 3, autoriteit 4%

Als de gebruikersinvoer een String is, kunt u proberen deze als een geheel getal te ontleden met behulp van de parseInt-methode, die NumberFormatException genereert wanneer de invoer is geen geldige cijferreeks:

try {
    int intValue = Integer.parseInt(stringUserInput));
}(NumberFormatException e) {
    System.out.println("Input is not a valid integer");
}

Antwoord 4, autoriteit 4%

U kunt try-catch-blok gebruiken om te controleren op integerwaarde

voor bijv.:

Gebruikersinvoer in de vorm van een tekenreeks

try
{
   int num=Integer.parseInt("Some String Input");
}
catch(NumberFormatException e)
{
  //If number is not integer,you wil get exception and exception message will be printed
  System.out.println(e.getMessage());
}

Antwoord 5, autoriteit 4%

        String input = "";
        int inputInteger = 0;
        BufferedReader br    = new BufferedReader(new InputStreamReader (System.in));
        System.out.println("Enter the radious: ");
        try {
            input = br.readLine();
            inputInteger = Integer.parseInt(input);
        } catch (NumberFormatException e) {
            System.out.println("Please Enter An Integer");
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        float area = (float) (3.14*inputInteger*inputInteger);
        System.out.println("Area = "+area);

Antwoord 6, autoriteit 4%

Met Integer.parseIn(String) kunt u de tekenreekswaarde ontleden in een geheel getal. U moet ook een uitzondering opvangen voor het geval de invoerreeks geen correct nummer is.

int x = 0;
try {       
    x = Integer.parseInt("100"); // Parse string into number
} catch (NumberFormatException e) {
    e.printStackTrace();
}

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes