/ / Java: Ich vergleiche zwei Strings, aber es hat es nicht erkannt - Java, Arrays, String, Compare

Java: Ich vergleiche zwei Strings, erkannte es aber nicht - Java, Arrays, String, Compare

Ich habe dieses Problem:

Ich habe diese Funktion geschrieben, weil ich den Index des Vorkommens einer bestimmten Zeichenfolge abrufen muss st in einem String-Array

static public int indicestring(String[] array, String st) {
int ret = -1;

for (int i = 0; i < array.length; i++){
if (st.equals(array[i])) {
ret=i;
break;
}
}

return ret;
}

Ich rief dann an:

System.out.println("indicestring(NODO,"ET2"));

und ich habe die richtige Nummer bekommen.

Aber wenn ich das tue:

String[] arcos2 = linea.split("-");//reading from a file and separating by "-"
String aux = arcos2[1];

System.out.println(arcos2[1]);
System.out.println(aux);

if (aux.equals(arcos2[1])) {
System.out.println("Is equal 1");
}

if (aux.equals("ET2")) {
System.out.println("Is equal 2");
}

if ("ET2".equals(aux)) {
System.out.println("is equal 3");
}

Die ersten beiden Abzüge waren ET2, aber dann wird nur von den 3 ifs gedruckt "Ist gleich 1" .... Die Sache ist, ich habe fast 200 Knoten wie "ET2" und nur 3 fallen aus und geben mir -1 in der ersten Funktion ...

Meine Frage ist....Ich verwende die Arrays falsch, um die Daten zu speichern und zu vergleichen, denn wenn aux = arcos2 [1] = "ET2", warum ist "aux.equals (" ET2 ")" oder "arcos2 [1] .equals (" ET2) " funktioniert nicht ? Gibt es eine andere Funktion, die Sie empfehlen können (ich habe versucht, gleich mit zu ändern)? compareTo() == 0 und das hat auch nicht geklappt und das schneiden wurde auch empfohlen).

Früher hatte ich einen ähnlichen Fehler, als ich zwei Arrays wie diesen verglich:

if(a[0] == b[0] && a[1] == b[1])

Es gab einen Fall, der eindeutig richtig war, aber ignoriert wurde ... Aber es wurde korrigiert, als ich es änderte:

if (Arrays.equals(a, b))

Gibt es vielleicht eine solche Veränderung?

Antworten:

0 für die Antwort № 1

Sie sollten einen Debug-Haltepunkt in den Code einfügen und Ausdrucksüberwachungen hinzufügen, um die Hauptursache des Problems zu identifizieren.