2017-04-19 1 views
-1

In letzter Zeit habe ich mich gegen Java getestet, so habe ich nicht viel Erfahrung. Deshalb weiß ich nicht wirklich, was ich mit diesem Fehler machen soll. Nun, um genauer zu sein, der Code unten funktioniert perfekt auf einigen zufälligen Android Java Compiler noch nach dem Kompilieren mit Eingabeaufforderung oder Eclipse, endet der Arbeitsteil am Scanner. Das Programm ignoriert den ersten Versuch, eine Eingabe zu implementieren, vollständig und der zweite Fehler wird mit diesem Fehler belohnt.InputMismatchException bei der Verwendung von Scanner

Exception in thread "main" java.util.InputMismatchException 
at java.util.Scanner.throwFor(Unknown Source) 
at java.util.Scanner.next(Unknown Source) 
at java.util.Scanner.nextDouble(Unknown Source) 
at Kalkulator.main(Kalkulator.java:14) 

Der Code:

import java.util.Scanner; 
public class Kalkulator{ 
public static void main(String[] args){ 
double a,b; 
System.out.println("wprowadz 2 liczby"); 
System.out.println("\"format:(x, x)\""); 
Scanner dane = new Scanner(System.in).useDelimiter("\\s*,\\s*"); 
a = dane.nextDouble(); 
b = dane.nextDouble(); 
System.out.println("\n"+"Podałeś "+a+" oraz "+b+"."); 
if (a%2 == 0){ 
System.out.println("\n"+a +" text"); 
} 
else{ 
System.out.println("\n"+a +" text"); 
} 
if (b%2 == 0){ 
System.out.println(b +" text"); 
} 
else{ 
System.out.println(b +" text"); 
} 
double wieksza, mniejsza; 
if (a > b){ 
wieksza = a; mniejsza = b; 
} 
else { 
wieksza = b; mniejsza = a; 
} 
System.out.println("Liczbą większą jest "+wieksza); 
System.out.println("Liczbą mniejszą jest "+mniejsza); 
dane.close(); 
} 
}` 
+1

Sie genannt 'nextdouble()' und die nächste Eingabe wird nicht parseable als 'double'. Wenn sich die Eingabe in zwei separaten Zeilen befindet, müssen Sie 'nextLine()' aufrufen, um zur nächsten Eingabezeile zu gelangen. –

Antwort

0

Hier ist eine Lösung Listen mit:

import java.util.ArrayList; 
import java.util.List; 
import java.util.Scanner; 

public class Kalkulator { 
    public static void main(final String... args) { 
    System.out.println("enter any number of doubles, whitespace delimited. enter a non-double token to quit"); 
    final List<Double> doubles = new ArrayList<>(); 
    try (final Scanner dane = new Scanner(System.in)) { 
     while (dane.hasNextDouble()) { 
     final double input = dane.nextDouble(); 
     doubles.add(input); 
     System.out.println(String.format("Read [%f]", input)); 
     } 
    } 
    System.out.println(String.format("finished reading user input. %d doubles read.", doubles.size())); 
    System.out.println(String.format("Largest input: %f", doubles.stream().reduce(Math::max).orElse(0D))); 
    System.out.println(String.format("Smallest input: %f", doubles.stream().mapToDouble(d -> d).min().orElse(0D))); 
    } 
} 
Verwandte Themen