需要帮助 - 切换声明

时间:2012-10-02 16:16:51

标签: java

您好我是编程新手,我需要帮助找出我的代码有什么问题。

基本上我需要带一个字母AZ并将其转换为Leek(符号的组合,#,看起来像AZ字符的字母。我只允许使用switch语句(开关,大小写,休息))必须使用.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);
    }
}

5 个答案:

答案 0 :(得分:5)

字符常量必须是intraphs:

case 'a':代替case a:

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

答案 1 :(得分:3)

另外   - 您在同一个块中声明变量“Leet”和“character”两次(重复的局部变量)

答案 2 :(得分:1)

使用char(表示单引号)的案例陈述,应该是

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

答案 3 :(得分:0)

你的案子应该像个案'a'

一样
 switch(character) 

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

并且您也声明了leet(String变量两次)。只需将其声明为一个,并在从扫描仪获得输入时使用相同的变量

答案 4 :(得分:0)

只有在使用JDK7时才能使用switch case中的字符串,即使这样你也必须使用引号中的值。 喜欢

case "a":