Ich weiß nicht, warum im 2 Fehler auf Zeichenfolgen nicht in int konvertiert werden kann.Compilation Fehler in einfachen Java-Programm mit Scanner
Antwort
keyboard.nextInt();
statt
keyboard.next();
Wenn Sie keyboard.next();
verwenden, dann int first
-String first
ändern.
Ändern Sie den Code dazu:
import java.util.*;
public class Demo {
public static void main (String [] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Type your first integer: ");
int first = keyboard.nextInt();
System.out.print("Type your seconds integer : ");
int second = keyboard.nextInt();
System.out.print("The sum of your two integers are:" +(first+second));
}
}
Ändern Sie Ihre Klassennamen zu einem anderen statt string
.
Kommentare sind nicht für ausführliche Diskussion; Diese Konversation wurde [in den Chat verschoben] (http://chat.stackoverflow.com/rooms/139096/discussion-on-answer-by-john-joe-not-compling-in-java-vim-editor). –
Sie sollten mit nextInt nächsten ersetzen, wie diese
int first = keyboard.nextInt();
Von der API können Sie die Rückgabetyp neben sehen, dass String, während nextInt() int ist.
sollte es in Kommentar sein. – Omore
Problem ist hier:
int first = keyboard.next();
Scanner.next liefert String, und Sie erwarten, int, so dass Sie es mit
int first = keyboard.nextInt();
Neben
int second = keyboard.nextInt();
ersetzen müssen Sie können scanner.nextLine()
verwenden (liest die Eingabe bis zum Ende der Zeile), was String
ausgibt ut und wandelt es in int
mit Integer.parseInt
wie unten dargestellt:
Scanner keyboard = new Scanner(System.in);
try {
System.out.print("Type your first integer: ");
int first = Integer.parseInt(keyboard.nextLine());
System.out.print("Type your seconds integer : ");
int second = Integer.parseInt(keyboard.nextLine());
int sum =first+second;
System.out.print("The sum of your two integers are:"+sum);
} catch(Exception exe) {
System.out.println(" Error!!!! Please try again !!!! ");
} finally {
keyboard.close();
}
Versuchen Sie auch, zu close
die Ressourcen (innen finally
Block, siehe oben) als Praxis.
Es gibt mehrere Möglichkeiten, dies zu tun, je nachdem, wie viel Validierung Sie durchführen möchten.
In der folgenden Lösung wird die erste Zahl mit .nextInt() erhalten. Beachten Sie, dass wir, wenn es sich nicht um eine ganze Zahl handelt, die Stream-Eingabe löschen müssen. Beim Aufrufen von InputMismatchException rufen wir daher .next() auf. Andernfalls würde die gleiche Ausnahme weiterhin auftreten, da die Eingabe nicht gelöscht wurde
Die zweite Zahl wird mit Hilfe von .next() erhalten, die eine Zeichenfolge zurückgibt und wir diese Zeichenfolge in die Ganzzahl umwandeln. Beachten Sie, dass wir hier eine andere Ausnahme namens NumberFormatException abfangen, um sicherzustellen, dass die Eingabe immer noch gut ist. (Wir rufen Sie nicht .next())
public static void main (String [] args) {
try (Scanner keyboard = new Scanner(System.in)) {
System.out.print("Type your first integer: ");
int first;
do {
try {
first = keyboard.nextInt();
break;
} catch (InputMismatchException e) {
keyboard.next();
System.out.print("Invalid first integer, try again: ");
}
} while (true);
System.out.print("Type your seconds integer : ");
int second;
do {
try {
second = Integer.valueOf(keyboard.next());
break;
} catch (NumberFormatException e) {
System.out.print("Invalid seconds integer, try again: ");
}
} while (true);
System.out.print("The sum of your two integers are: " + (first + second));
}
}
Eine letzte Sache, die ich war auf der Ressource haben versucht, auf diese Weise der Eingangsstrom unabhängig geschlossen wird, wenn das Programm normal beendet oder eine Ausnahme auslöst.
Sie verwenden next() -Methode aus der Scanner-Klasse. Diese Methode gibt String zurück und Sie können keine Zeichenfolge in der Variablenart int speichern. Sie können also die Methode nextInt() für die Eingabe vom Typ int verwenden oder Sie können den Wert einfach in der Variablen String speichern und anschließend die Variable String in int umwandeln.
Bitte folgen Sie diesen Code:
import java.util.*;
public class strings {
public static void main (String [] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Type your first integer: ");
int first = keyboard.nextInt();
System.out.print("Type your seconds integer : ");
int second = keyboard.nextInt();
System.out.print("The sum of your two integers are:" +(first+second));
}
}
oder diesen Code Folgen
import java.util.*;
public class strings {
public static void main (String [] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Type your first integer: ");
//Get String input and stroe at String variable
String firstString = keyboard.next();
//Convert the String variable to int
int first=Integer.parseInt(firstString);
System.out.print("Type your seconds integer : ");
//Get String input and stroe at String variable
String secondString = keyboard.next();
//Convert the String variable to int
int second=Integer.parseInt(secondString);
System.out.print("The sum of your two integers are:" +(first+second));
}
}
Wie andere gesagt haben, können Sie verwenden
int first = keyboard.nextInt();
aber Sie können auch die nächste() verwenden, Methode zusammen mit einer parseInt, die den praktischen Vorteil haben kann, eine Fehlermeldung anzuzeigen, wenn Sie möchten.
Scanner-Klasse next()
Methode gibt Stringwert zurück. Sie können einen der folgenden Schritte ausführen, um den Kompilierungsfehler zu beheben.
Sie müssen den String-Wert in int konvertieren.
int first = Integer.parseInt(keyboard.next());
können Sie
nextInt()
Methode verwenden, um int-Wert direkt vom Benutzer zu erhalten.
Dies wird die ganze Zeile konvertiert es dann zu einem Integer
int first = Integer.paresInt (keyboard.nextLine()) lesen;
oder
Wenn Sie sicher sind, Eingang in Ziffer
int first = keyboard.nextInt();
ändern first
und second
Variablen aus
int first = keyboard.next();
int second = keyboard.next();
zu
int first = keyboard.nextInt();
int second = keyboard.nextInt();
Versuchen Sie es mit
keyboard.nextInt();
nicht
keyboard.next();
Es zeigt an, dass es nicht konvertieren kann, weil .next für Zeichenfolgen ist, aber für andere Datentypen ist .next und dann die Datentypen mit einem Großbuchstaben.Zum Beispiel:
long l=keyboard.nextLong();
und boolean b=keyboard.nextBoolean();
ich drei Lösungen für dieses Problem:
Erste
In Ihrem Code Sie keyboard.next()
verwenden, die eine Zeichenfolge zurück, die Sie haben um es in Integer
umzuwandeln. Dafür können Sie keyboard.nextInt()
verwenden, es konvertiert die Zeichenfolge direkt in Integer.
import java.util.Scanner;
public class strings {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Type your first integer: ");
int first = keyboard.nextInt();
System.out.print("Type your seconds integer : ");
int second = keyboard.nextInt();
System.out.print("The sum of your two integers are:"+(first+second));
}
}
Zweite
oder Sie können die Zeichenfolge in Integer zu konvertieren, indem Integer.parseInt(**String to be converted to Integer**)
verwenden, wird dies die string into Integer
konvertieren.
import java.util.Scanner;
public class strings {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Type your first integer: ");
int first = Integer.parseInt(keyboard.next());
System.out.print("Type your seconds integer : ");
int second = Integer.parseInt(keyboard.next());
System.out.print("The sum of your two integers are:"+(first+second));
}
}
Dritte
oder Sie können die Zeichenfolge in Integer zu konvertieren, indem Integer.valueOf(**String to be converted to Integer**)
verwenden, wird dies die string into Integer
konvertieren.
import java.util.Scanner;
public class strings {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Type your first integer: ");
int first = Integer.valueOf(keyboard.next());
System.out.print("Type your seconds integer : ");
int second = Integer.valueOf(keyboard.next());
System.out.print("The sum of your two integers are:"+(first+second));
}
}
Wenn Sie diese (oder irgendeine) Antwort als hilfreich empfunden haben, aktualisieren Sie sie bitte. Wenn dies Ihre Frage beantwortet hat, markieren Sie diese als akzeptierte Antwort. Vielen Dank! –
Obwohl Sie Code-Beispiele zur Verfügung gestellt haben, haben Sie keine Erklärung gegeben, wie Sie das Problem oder das Problem mit dem ursprünglichen Code-Snippet gelöst haben. Als Ergebnis ist Ihre Antwort nicht von sehr guter Qualität. – pczeus
aktualisierte meine Antwort. Danke für die Information! :) –
keyboard.next() die nächsten vollständigen Token vom Scanner zurückzukehren, denke ich an String-Typ, so dass es typisieren werden muss, um integer und bessere Option ist keyboard.nextInt() Methode zu verwenden, um die zu übernehmen ganzzahlige Eingabe
haben Sie Ihren Code dies ändern:
import java.util.*;
public class strings {
public static void main (String [] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Type your first integer: ");
int first = keyboard.nextInt();
System.out.println("Type your seconds integer : ");
int second = keyboard.nextInt();
System.out.print("The sum of your two integers are:"+(first+second));
}
}
- 1. Compilation Fehler mit GTKMM
- 2. Compilation Fehler bei Vorlage
- 3. Bestätigungsfeld in Java | Compilation Fehler
- 4. Compilation Fehler in Android Studio
- 5. Fehler mit Scanner-Objekt java.util.NoSuchElementException
- 6. Compilation Fehler mit Mocha nativen Router reagieren
- 7. IBM Rational Rhapsody Compilation Fehler
- 8. Vivado Hls-Coding Compilation Fehler
- 9. mit Scanner und next() mit println Fehler
- 10. Fehler im Scanner
- 11. AOT Compilation Fehler in Angular-Bibliothek
- 12. Fehler mit einfachen Shell-Skript
- 13. Stop Compilation in Code
- 14. OCaml Compilation mit corebuild
- 15. Compilation mit Modul Verfeinerung
- 16. Compilation Problem mit Unicode-Zeichen in C++
- 17. LLVM tutorial OCaml Compilation Assembler Fehler
- 18. Razor Compilation Error mit NancyFX
- 19. Ahead of Time Compilation statische Analyse Fehler
- 20. ASP.net CS1061 Compilation Fehler bei der Bereitstellung
- 21. Compilation Fehler bei der MVN -install
- 22. Fehler: kann die Symbolklasse nicht finden Compilation
- 23. Compilation Fehler beim Kompilieren Objective C-Programms
- 24. Compilation Fehler beim Instanziieren eine neue Arraylist
- 25. Compilation Fehler zurückgegeben generische Liste mit von einem Typ erstreckenden
- 26. wxpython Compilation
- 27. Javac Cross-Compilation mit 1.7
- 28. Fehler mit dem einfachen EasyComplete-Eingang
- 29. C Compilation mit fehlenden Funktionsdefinitionen
- 30. Mit einem einfachen Scanner, eine Zeichenfolge mit Leerzeichen lesen, wie funktioniert .trim() -Methode nicht funktioniert?
Bitte [Bearbeiten] Ihre Frage-Thema zu sein: include a [MCVE], die das Problem dupliziert. Fragen, die Debugging-Hilfe suchen ("Warum funktioniert dieser Code nicht so, wie ich will?") Muss Folgendes enthalten: (1) das gewünschte Verhalten, (2) ein spezifisches Problem oder einen Fehler und (3) den kürzesten Code, der für die Reproduktion erforderlich ist * in der Frage selbst *. Bitte beachten Sie auch: [Was kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) und [fragen]. Wenn der bereitgestellte Code das Problem dupliziert, müssen Sie immer noch die * genauen * Fehler, die Sie erhalten, sowie das erwartete Verhalten einschließen. – Makyen
Duplizieren? [Wie man einen String in einen int in Java konvertiert] (http://stackoverflow.com/questions/5585779/how-to-convert-a-string-to-an-int-in-java) –