2017-02-03 4 views
-5

Ich versuche, eine Zelle in meinem strMoMaturityTable aktualisieren für MaiWarum wird das erste Element meines Arrays nicht aktualisiert?

System.out.println(strMoMaturityTable[0]); 

    if(strMoMaturityTable[0] == "May") 
    { 
     strMoMaturityTable[0] = "05"; 
    } 
    System.out.println(strMoMaturityTable[0]); 

Und hier ist mein Ausgang

Output

+2

ich es beantwortet glauben [hier] (http://stackoverflow.com/a/513839/767632) – yeputons

+0

Ja, es kann eine mögliche doppelte sein, aber Szenario hier ist die Frage, um richtig Betreiber und Verfahren zu verwenden . – chlkdst

Antwort

3

Wir verwenden Sie nicht die „das Datum Nummer übereinstimmen == "Strings in Java zu vergleichen ... oder irgendwelche Java-Objekte für diese Angelegenheit. Verwenden Sie die equals() -Methode aus der Object-Klasse.

Für String Klasse insbesondere können Sie auch die equalsIgnoreCase() verwenden.

System.out.println(strMoMaturityTable[0]); 
if(strMoMaturityTable[0].equalsIgnoreCase("May")){ 
    strMoMaturityTable[0] = "05"; 
} 
System.out.println(strMoMaturityTable[0]); 
+0

warum ist .equalsIgnoreCase besser als einfach .equals in diesem Fall? –

+1

Nur der Fall empfindlichen Unterschied. equals() sollte es gut machen. – SarathChandra

+0

Der einzige Unterschied zwischen ihnen ist, dass die equals() -Methode den Fall berücksichtigt – chlkdst

Verwandte Themen