2017-10-11 5 views
-5

J'écris un programme simple où le programme demande à l'utilisateur d'entrer des chaînes et une certaine sortie dans généré en fonction de l'entrée de l'utilisateur. Mais quand je cours le code j'ai eu une erreur. Errors J'ai également essayé l'importation du scanner, mais les mêmes exceptions apparaissent. Et quand j'ai déplacé les importations en dehors de mon principal j'ai encore eu 3 erreurs différentes. Errors À ce moment, je n'ai pas besoin de la méthode à boucler ou quoi que ce soit, je veux juste l'avoir pour que le programme puisse cracher une sortie basée sur l'entrée de l'utilisateur. Merci.erreurs de saisie utilisateur démarrage illégal de l'expression et le type

public class Question { 
    public static void main(String arg[]) { 
     import java.io.BufferReader; 
     BufferReader br = new BufferReader(new InputStreamReader(System.in)); 
     String input = br.readLine("who's your daddy?"); 

     if (input = "you're my daddy.") { 
      System.out.println("correct"); 
     else { 
      System.out.println("try again"); 
     } 
    } 
} 
} 
+1

déclarations d'importation ne peuvent être faire partie d'une méthode ou une classe. Ils doivent être séparés au début d'un fichier. –

+0

Voir aussi [Comment comparer les chaînes en Java?] (Https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – khelwood

+0

Si vous formatez votre code correctement, vous verrez que vos accolades sont foiré: Vous ne fermez pas l'accolade avant votre autre déclaration. –

Répondre

0

Les comparaisons sont réalisées avec ==, non =. Et, en Java, pour cordes, vous devez utiliser les égaux() méthode FOT que

input.equals("you're my daddy.") 
1

Edit:

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

class Question { 

    public static void main(String[] args) { 

    try { 
     BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
     String input = in.readLine(); 
     if ("you're my daddy.".equals(input)) { 
     System.out.println("correct"); 
     } else { 
     System.out.println("try again"); 
     } 
    } catch (IOException ex) { 
     System.out.println("Error reading from System.in"); 
    } 
    } 
} 

Une autre astuce pour les comparaisons de chaîne: Il est préférable de mettre la chaîne constante dans la premier lieu de la comparaison pour éviter NullPointerExceptions.

if ("you're my daddy.".equals(input)) { 
    // ... 
} 

Et une brève explication des raisons pour lesquelles == n'est pas corriger: Ce vérifie si deux objets sont les mêmes (identité). Chaque fois que vous écrivez "vous êtes mon papa". une nouvelle chaîne est créée. Par conséquent, la comparaison avec == ne sera jamais vraie bien que le contenu de la chaîne soit identique.

0

Dans votre code .. vous pouvez utiliser BufferedReader en dehors des principales comme celui-ci BufferReader private static br = new BufferReader (nouvelle InputStreamReader (System.in));

si (entrée = "vous êtes mon papa.") {// en utilisant la méthode égale. votre code est erroné ici

System.out.println("correct"); 

// ne ferment pas les accolades ici

0
public class V 
{ 
    public static void main (String [] args) 
     { 

    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));   
     System.out.print("Enter your input string: "); 

     String input = reader.readLine(); 
     System.out.println("Your input is: " + input); 

     String input1="you're my daddy."; 
     if (input.equals(input1)) 

     { 

      System.out.println("correct"); 
     } 
     else 
     { 

     System.out.println("try again"); 

     } 

     } 
     catch (IOException e) 
     { 
     e.printStackTrace(); 
     } 

     } 

} enter code here