/ / Java: je compare deux chaînes mais il ne les a pas reconnues - java, tableaux, chaîne, comparer

Java: je compare deux chaînes mais il ne l'a pas reconnu - java, tableaux, string, compare

J'ai ce problème:

J'ai écrit cette fonction car j'ai besoin d'obtenir l'index de l'occurrence d'une chaîne particulière st dans un tableau de chaînes

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;
}

J'ai alors appelé:

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

et j'ai obtenu le bon numéro.

Mais quand je le fais:

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");
}

Les deux premiers tirages ont été ET2, mais alors il n'a imprimé que des 3 ifs est "Est égal à 1" .... Le problème est que j'ai près de 200 nœuds comme "ET2" et seulement 3 échouent et me donnent -1 dans la première fonction ...

Ma question est....Suis-je en train de mal utiliser les tableaux pour enregistrer et comparer les données, car si aux = arcos2 [1] = "ET2", pourquoi "aux.equals (" ET2 ")" ou "arcos2 [1] .equals (" ET2) " Ca ne fonctionne pas ? Y a-t-il une autre fonction que vous pouvez recommander d'essayer? (J'ai essayé de changer compareTo() == 0 et cela ne fonctionnait pas non plus et la coupe était également recommandée).

Avant, j'avais une erreur similaire où je comparais deux tableaux comme celui-ci:

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

Il y avait un cas qui était clairement correct, mais il a été ignoré ... Mais cela a été corrigé quand je l'ai changé en:

if (Arrays.equals(a, b))

Y a-t-il peut-être un changement comme ça

Réponses:

0 pour la réponse № 1

Vous devez placer un point d'arrêt de débogage dans le code et ajouter des surveillances d'expression pour identifier la cause racine du problème.