2017-09-27 4 views
0

J'ai écrit une boucle for-it qui parcourt une grande chaîne et son but est de voir si ma chaîne a des caractères comme $ ou $$. Ce est l'instruction if que j'ai dans ma boucle for:Comment comparer un ou deux caractères à un ou deux autres caractères

if (stringName.charAt(i) == "$" || stringName.charAt(i) == "$$") 

Quand je compile mon code, je reçois une erreur disant « types incomparables: char et cordes » qui est explicite. Maintenant, ma question est, quelle est la meilleure façon de le réparer? Quelle méthode en dehors de charAt() puis-je utiliser pour comparer les deux caractères chaîne "$$"?

+2

Pourquoi avez-vous besoin d'itérer ensemble? Pourquoi ne pas vérifier 'stringName.contains (" $ ")'? – shmosel

+1

Alors s'il vous plaît expliquer le problème réel afin que nous puissions discuter d'une solution réelle. – shmosel

+0

Est-ce que je ne vérifie pas seulement "$"? Notez que vous avez besoin de guillemets simples (un 'char') pas de guillemets doubles (un' String') – Bohemian

Répondre

0

Vous devez utiliser String.substring() à la place. Vous pourriez réécrire votre code comme ceci:

if (stringName.charAt(i) == '$' || stringName.substring(i, i + 2).equals("$$")) 
+0

Parfait, merci! – Beatrice

0

Le caractère unique ne peut pas être comparé à deux. En plus des problèmes syntaxiques, difficile d'imaginer le sens.

Code Vous avez changé en deux endroits: apostrophe unique pour le type Char et sélection cordes (par substring() et la comparaison (par equals()) dans son API

if (stringName.charAt(i) == '$' || stringName.substring(i,i+2).equals("$$")) 

EDIT d'accord, la deuxième condition est superflue avec le premier , permet de comprendre la question

if (stringName.charAt(i) == 'A' || stringName.substring(i,i+2).equals("BB")) 

Merci pour commentaires

+1

Le nom de la méthode est 'substring()'. 'endIndex' est exclusif. Les deux conditions sont redondantes. – shmosel

+0

'endIndex' n'est pas inclusif. Vous avez besoin de 'i + 2' – AJNeufeld

+0

merci pour le commentaire, changé –