Inkompatible Typen

Hallo …

verstehe da etwas nicht. Hoffe das ich hier richtig bin.
Ich habe ein Formular, welches nach dem Senden eine Variable (anzahl) mit dem Wert 1 oder 2 übergibt. (Dieser Wert soll von einer kleinen JSP empfangen und ausgewertet werden. Soweit alles ok.
In der JSP steht folgendes:

String anzahl;
anzahl=request.getParameter(„anzahl“);
if (anzahl == „1“){
out.println(„stimmt“);
}
else {
out.println(„stimmt nicht“);
}

Mein Problem ist, das immer ‚else‘ greift, egal ob ich im Formular 1 oder 2 eingebe. Selbst wenn ich einen String test erstelle, und test den wert „1“ gebe, anschließend dann mit anzahl vergleiche, kommt wieder „stimmt nicht“.
anzahl und test sind doch zwei zu vergleichende Strings oder?

Wo liegt jetzt mein Fehler?

Hallo …

if (anzahl == „1“){

Damit ueberpruefst du, ob beide Objekte auf die gleiche Instance zeigen.
Daher solltest du beim Vergleichen von Strings equals() benutzen
(es sei denn du willst genau das obige erreichen).

if (anzahl.equals("1")) {

Dazu:
http://www.java2s.com/Code/Java/Language-Basics/Stri…

Gruss, Patrick

Merke ich mir.

Alles klar, dande.

M.f.G.

Merke ich mir.

Alles klar, dande.

M.f.G.

Hallo,

wenn du nur zahlen(integer) in dein Formular eingibst in dein Beispiel 1 oder 2. musst du den String nach int umwandeln und dann mit == vergleichen. ich glaube dass dies die saubere Lösung ist. damit bekommst du eine Exception falls der Benutzer keinen gültigen Zahl eingegeben hat.

Gruss
Youssef