J'essaie de lire les intrants de la console, qui fonctionnent. Cependant, ma déclaration IF (en vérifiant si mon entrée et mon entrée souhaitée est la même) ne fonctionne pas. J'ai ajouté tout mon code en bas, dites-moi s'il vous plaît si vous voyez ce que je fais mal. Je suis nouveau à Java, alors donnez-moi des conseils sur d'autres parties du code. Merci, max.
package Issue;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
public class Issue {
public static int loop;
public static String input,desiredInput;
public static void main(String args []) throws InterruptedException {
Scanner in = new Scanner(System.in);
loop = 1;
while(loop == 1) {
input = in.nextLine();
desiredInput = "help";
// uncomment to see if what input and desired input are equal to :)
//System.out.println(input + " " + desiredInput);
if(input == desiredInput) {
System.out.println("911 what's the emergency.");
}
}
}
}
3 Réponses :
Vous comparez ici des références d'objet ici. Les chaînes sont des objets dans l'entrée Java == DirreurInput signifie que vous vérifiez l'égalité de la référence d'objet non du contenu. Pour comparer le contenu Utiliser Input.equals (désiréInput) P>
C'est un peu pointu pour Java que vous allez apprendre à éviter. Double Equals '==' ne doit pas être utilisé pour une comparaison de valeur sur des objets de chaîne ni de tout objet à ce sujet. Pour les chaînes, utilisez plutôt
== code> tests pour l'égalité de référence (qu'ils soient le même objet). P>
.equals () code> tests pour l'égalité de valeur (qu'ils soient logiquement "égaux"). p>
Bonjour FoxgoHehehe, bienvenue à Stackoverflow et à la programmation. Votre code ne fonctionne pas, car la comparaison code> String code> S dans Java fonctionne différemment. En comparant
entrée == déposeInput code>, vous comparez réellement, que la chaînecode> s est le même objet dans la mémoire, non pas s'ils sont équivalents (égaux). Vous souhaitez comparer:désiréinpur.equals (entrée) code>. De plus, vous voudrez peut-être supprimer des caractères vides comme des pauses de ligne et des espaces de l'une des extrémités de l'entrée. Faites-le donc:désiréInput.equals (entrée.trim ()) code>.Nous n'utilisons pas == pour comparer la valeur des chaînes en Java. Essayez Input.equals (désiréInput)
Merci, je ne savais pas à ce sujet! Je pourrai continuer mes projets!