您好我是编程新手,我需要帮助找出我的代码有什么问题。
基本上我需要带一个字母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);
}
}
答案 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":