2012-10-02 15 views
5

Hola, soy nuevo en la programación y necesito ayuda para descifrar cuál es el problema con mi código.Need Help- Switch statement

Básicamente necesito tomar una letra AZ y convertirla en Leek (un combo de signo, #, letra que se parece a los caracteres AZ. Solo me permiten usar instrucciones de cambio (cambio, caso, rupturas) también Tengo que usar el método .next(). CharAt (0).

He estado investigando durante días y aún no tengo suerte para descubrir qué es lo que falla. Cuando intento compilar mi programa, aparece un error múltiple toda lectura "no se puede encontrar el símbolo" señalando el carácter az i utilizado en la declaración de caso. Podría alguien ser amable y señalar lo que estoy haciendo mal?

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

Respuesta

1

caso utilizando char (lo que significa comilla simple), que debería ser algo así como

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

el characte R debe ser constantes en apostraphs en:

case 'a': en lugar de case a:

fijar su código y espero que este es el único error de sintaxis que tiene.

comunicado
+0

Hey it works, TYVM! esa fue una solución fácil – user1714873

+1

@ user1714873: si resolvió su problema, no se olvide de aceptar la respuesta, por favor. – Jimmy

0

su caso debe ser un char como caso 'a'

switch(character) 

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

y también se declara leet (variable de cadena dos veces). acaba de declarar que uno y utilizar la misma variable cuando llegue a la entrada del escáner

+0

@hayden editó mi respuesta ... :) – PermGenError

3

También - que está declarando variable "Leet" y "carácter" dos veces en el mismo bloque (Duplicar variable local)

0

uso de cadenas en la caja del interruptor solo se puede usar si usa JDK7 e incluso entonces tendrá que tener los valores entre comillas. Me gusta

case "a": 
+2

Está cambiando el personaje ... Debería ser 'a'. Eso es perfectamente válido en Java 6 también. –