Java中的Switch语句

Java中的Switch语句,java,Java,基本上,我需要取一个字母a-Z并将其转换为韭菜(符号、#的组合,看起来像a-Z字符的字母)。我只允许使用switch语句(switch、case、breaks),还必须使用.next().charAt(0)方法 当我试图编译我的程序时,它会出现多个错误,所有读取“找不到符号”的内容都指向我在case语句中使用的a-z字符 import java.util.Scanner; public class dlin_Leet { public static void main(String a

基本上,我需要取一个字母a-Z并将其转换为韭菜(符号、#的组合,看起来像a-Z字符的字母)。我只允许使用switch语句(switch、case、breaks),还必须使用.next().charAt(0)方法

当我试图编译我的程序时,它会出现多个错误,所有读取“找不到符号”的内容都指向我在case语句中使用的a-z字符

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);
    }
}
import java.util.Scanner;
公共课
{
公共静态void main(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
char character;//由用户输入
弦乐;
System.out.print(“输入要转换的字符:”);
字符串Leet=input.next();
char character=Leet.charAt(0);
开关(字符)
{
案例a:Leet=“4”;
打破
案例b:Leet=“I3”;
打破
案例c:Leet=“[”;
打破
案例d:Leet=“)”;
打破
案例e:Leet=“3”;
打破
案例f:Leet=“|=”;
打破
案例g:Leet=“&”;
打破
案例h:Leet=“#”;
打破
案例一:Leet=“1”;
打破
案例j:Leet=“j”;
打破

案例k:Leet=“|字符常量必须在字母表中:

案例“a”:
而不是
案例a:


修复你的代码,我希望这是你唯一的语法错误。

case语句使用
char
(意思是单引号),应该是

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

您的案例应该是类似于案例“a”的字符

 switch(character) 

 {
    case 'a':
       //do your stuff
    }
而且您正在声明leet(字符串变量两次)。只需声明一个,并在从扫描仪获得输入时使用相同的变量
-在同一块中声明变量“Leet”和“character”两次(重复局部变量)

只有在使用JDK7的情况下,才能使用开关大小写中的字符串,即使这样,也必须将值括在引号中。 像


@user1714873:如果它解决了你的问题,请不要忘记接受答案。他正在转换字符..它应该是“a”。这在Java 6中也完全有效。
case "a":