2012-10-02 1 views
5

Hallo Ich bin neu in der Programmierung und ich brauche Hilfe herauszufinden, was mit meinem Code falsch ist.Brauchen Sie Hilfe- Switch-Anweisung

Grundsätzlich muss ich einen Buchstaben AZ nehmen und es zu Leek konvertieren (eine Kombination aus Zeichen, #, Buchstaben, die wie die AZ Zeichen aussehen. Ich bin nur erlaubt, Schalteranweisungen (Schalter, Fall, Brüche) auch zu verwenden Ich muss die .next(). CharAt (0) Methode verwenden.

Ich habe seit Tagen recherchiert und immer noch kein Glück auf herauszufinden, was falsch ist.Wenn ich versuche, mein Programm zu kompilieren, kommt es mit mehreren Fehler alle lesen zeigt auf die az Zeichen i in dem Fall Anweisung „nicht Symbol finden können.“ Könnte jemand freundlich sein und darauf hinweisen, was ich falsch mache?

import java.util.Scanner; 

public class dlin_Leet 
{ 
    public static void main(String args[]) 
    { 
     Scanner input = new Scanner(System.in); 

     char character;//input by user 
     String Leet; 

     System.out.print("Enter character to convert:"); 
     String Leet = input.next(); 
     char character = Leet.charAt(0); 

     switch (character) 
     { 
      case a: Leet = "4"; 
       break; 
      case b: Leet = "I3"; 
       break; 
      case c: Leet = "["; 
       break; 
      case d: Leet = ")"; 
       break; 
      case e: Leet = "3"; 
       break; 
      case f: Leet = "|="; 
       break; 
      case g: Leet = "&"; 
       break; 
      case h: Leet = "#"; 
       break; 
      case i: Leet = "1"; 
       break; 
      case j: Leet = "J"; 
       break; 
      case k: Leet = "|<"; 
       break; 
      case l: Leet = "1"; 

      } 
     System.out.println(Leet); 
    } 
} 

Antwort

1

Fall Anweisung char (das Apostroph bedeutet), sollte es so etwas wie

switch (character) 
      { 
       case 'a': Leet = "4"; 
        break; 
       case 'b': Leet = "I3"; 
        break; 
      ......... 
      } 
5

die characte r Konstanten müssen in in apostraphs sein:

case 'a': statt case a:

Fix Code und ich hoffe, das ist die einzige Syntaxfehler Sie haben.

+0

Hey es funktioniert, TYVM! das war eine einfache Lösung – user1714873

+1

@ user1714873: Wenn es Ihr Problem gelöst hat, vergessen Sie nicht, die Antwort bitte zu akzeptieren. – Jimmy

0

Ihr Fall sein sollte, ein Zeichen wie Fall sein ‚a‘

switch(character) 

{ 
    case 'a': 
     //do your stuff 
    } 

und auch erklären Sie leet (Stringvariable zweimal). nur es eine erklären und die gleiche Variable verwenden, wenn Sie eine Eingabe von dem Scanner

+0

@hayden redigierte meine Antwort .. :) – PermGenError

3

Auch bekommen - Sie erklären Variable „Leet“ und „Charakter“ zweimal im selben Block (Duplizieren lokale Variable)

0

mit Hilfe von Strings im Switch-Fall kann nur verwendet werden, wenn Sie JDK7 verwenden und selbst dann müssen Sie die Werte in Anführungszeichen haben. Wie

case "a": 
+2

Er schaltet Charakter .. Es sollte "a" sein. Das gilt auch in Java 6. –