jetzts gehts wieder, ich habe unnötige Pakete gelöst.
ich wollte ein 5 eingeben,
Code:
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Gib ein Wort ein: ");
//String text = input.readLine();
String a = input.readLine();
int b = Integer.parseInt( a );
System.out.println( b);
ich bekomme einen fehler
Code:
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:415)
at java.lang.Integer.parseInt(Integer.java:497)
Wenn ich mal groß bin, will ich "Programmierkurs" werden :wink:
Code:
System.out.print("Zahl 1: ");
String a = input.readLine();
int b = Integer.parseInt( a );
System.out.print("\nZahl 2: ");
a = input.readLine();
int c = Integer.parseInt( a );
System.out.print("\nErgebnis: " + (b + c));
/*
* Main.java
*
* Created on 1. Juli 2007, 20:09
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package count;
import java.io.*;
/**
*
* @author Administrator
*/
public class Main {
/** Creates a new instance of Main */
public Main() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
/*InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Gib ein Wort ein: ");
System.out.print("Zahl 1: ");
String a = input.readLine();
*/
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
int e;
int f;
System.out.print("\nZahl 2: ");
int b = Integer.parseInt(e);
System.out.print("\nZahl 2: ");
int c = Integer.parseInt(in.readLine());
System.out.print("\nErgebnis: " + (b + c));
}
}
int e;
System.out.print("\nZahl 2: ");
int b = Integer.parseInt(e);
wo wird da was eingelesen?
sollte gar nicht erste kompilieren (mein Eclipse beschwert sich jedenfalls),
Integer.parseInt(int) geht doch nicht und e ist nicht initialisiert
Du legst zwar Variablen mit dem Namen e und f an, initialisiert sie aber nicht. Damit haben sie standardmäßig den Wert "NULL".
Damit das ganze erstmal funktioniert, wäre soetwas möglich:
Code:
int e = 2;
int f = 4 //oder jede andere Zahl;
Ansonsten:
Code:
int e = Integer.parseInt (in.readline());
Jetzt solltest du dich fragen, was passiert, wenn die eingelesene Zeile gar keine Zahl ist. Genau: ein Fehler fliegt. Da solltest du dann ansetzen, z.B. den Fehler mit einem try/catch-Block abfangen. Ein Blick in Java ist auch eine Insel schadet sicher nicht ;-)
ich habe die Variabeln auch initialiert, trozdem bekomme ich diese Fehler.
Ein Wort kann ich ausgeben, aber beim Zahl bekomme ich Fehler, ich auch überall gelesen, kein Erfolg
Code:
public static void main(String[] args) throws IOException {
String zahl = null;
int liste = 5;
BufferedReader stdin = new BufferedReader(
new InputStreamReader( System.in ) );
System.out.println("Geben Sie ein:");
zahl = stdin.readLine();
liste = Integer.parseInt( zahl );
System.out.println( liste);
}
Ich gebe ein Zahl 6 aus und er gibt mir eine Fehlermeldung
Code:
Compiling 1 source file to C:\Dokumente und Einstellungen\Administrator\Count\build\classes
compile:
run:
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:415)
at java.lang.Integer.parseInt(Integer.java:497)
at count.Main.main(Main.java:40)
Zahl 2:
Java Result: 1
BUILD SUCCESSFUL (total time: 1 minute 15 seconds)
Meine Frage oder mein Problem ist zu verstehen,warum wenn man einen String eingibt , bekomme ich keinen Fehler.
Wenn ich aber zwei Zahlen von Tatstaur geben möchte , bekomme ich Number FormatException Fehler.
ich habe nichts vergessen, Jeder Zeile wird gelesen.
abgesehen von dem Scherz: überleg mal was du da machst,
warum es mal klappt und mal nicht, da musst du bisschen System reinkriegen,
wenn mein Programm bei dir einmal geklappt hat, dann sollte es immer klappen,
behalte die Ausgabe als String bei: 'Ausgabe: 6'
DANACH kannst du den String '"6" dann noch in eine Zahl umwandeln oder sonst was damit machen,
wenn du alles bisher erreichte löschst und wieder mit NullPointerException anfängst, dann ist das nicht produktiv..
kehre noch mal zurück zu meinem Programm,
wenn du da 6 eingibts wird 6 ausgegegen,
nun machst du Integer.parseInt() mit diesem String (nicht mit einem neuen oder sonst was komisches)
siehe da, es wird zu keine Exception kommen, jedenfalls nicht NullointerException,
denn der String kann ja gar nicht null sein wenn auf dem Bildschirm 6 ausgegeben wird,
siehst du wie simpel das ist?
und wie immer: Code posten wenns nicht geht