equalsIgnoreCase retourneert false, zelfs als strings hetzelfde zijn in java

int locctr = 0,toknum = 0;

    String temp;
    String d;
    String [] tok = new String[500];
    String[] lines = CODE.getText().split("\n");
    try
    {
        for(int i=0;i

// invoer moet worden geaccepteerd voor CODE ... het is geaccepteerd met behulp van een TXT-bestand CODE bevat

.DATA
 DATAENDS

deze code moet worden uitgevoerd bij klikken op de knop ...

PROBLEEM: zelfs wanneer de waarde @ tok [0] = .DATA fout is met retourneren ..... heeft de array tok [] gecontroleerd of de gegevens correct worden toegewezen ..... maar voorwaarde dat het nog steeds false geeft .....

OUTPUT :

     temp is .DATA
         SS IS .DATA
         tok[num] .DATA
         toknum 0
     temp is DATAENDS
         SS IS DATAENDS
         tok[num] DATAENDS
         toknum 1tok[0] is .DATA
    r is : false
0
ja ru de
plak de uitvoer van deze regel: System.out.print ("tok [0] is" + tok [0]);
toegevoegd de auteur Muhammad Imran Tariq, de bron
@ImranTariq beter dit: System.out.print ("tok [0] is '" + tok [0] + "'");
toegevoegd de auteur jlordo, de bron
probeer tok [0] .trim (). equalsIgnoreCase (". DATA") . Het heeft mogelijk spaties in de hoofd-/volgspoor. Ik ben er vrij zeker van dat equalsIgnoreCase() gelijk heeft dat de tekenreeksen niet gelijk zijn;)
toegevoegd de auteur Hiery Nomus, de bron
Misschien heb je achterliggende spaties?
toegevoegd de auteur izaera, de bron
Pablo ..... als ik een touwtje gebruik, werkt het correct ......
toegevoegd de auteur Benjamin Varghese, de bron
Zeker, Hiery zal het laten weten ....:) ...... Imran ik gebruik hetzelfde sinds lange tijd (oude gewoonten ...)
toegevoegd de auteur Benjamin Varghese, de bron
Heel erg bedankt Hiery Nomus ..... het wrks nu het probleem was met witte ruimtes, ik denk ... n dank u allemaal voor uw reactie
toegevoegd de auteur Benjamin Varghese, de bron
We moeten de voorwaarde geven alsof (tok [0] .trim (). EqualsIgnoreCase (". DATA")) {........... ............ } aangezien tok [0] witte spaties kan bevatten en in vergelijking kan zelfs een spatie fouten opleveren ... dus, zijn advies in staat om .trim() te gebruiken.
toegevoegd de auteur Benjamin Varghese, de bron

1 antwoord

Wanneer u is gelijk aan of equalsIgnoreCase retourneert false wanneer er true moet worden geretourneerd. gebruik trim om te redden.

if(tok[0] != null && tok[0].trim().equalsIgnoreCase(".DATA"))
2
toegevoegd
Dat, mijn vrienden, is de ervaring die spreekt :)
toegevoegd de auteur Srinivas, de bron