Java JSP中的If-else(开关大小写)
在eclipse上用JSP创建网站: 选择[i]作为1到5之间的字符串从上一个网页中正确获取 每个数字代表一个主题,即:如果选择[i]==1,则子=数学 我无法在字符串上切换case,所以我尝试了if-else。。但是sub总是等于null声明??如何使sub接受if条件下的值Java JSP中的If-else(开关大小写),java,string-comparison,Java,String Comparison,在eclipse上用JSP创建网站: 选择[i]作为1到5之间的字符串从上一个网页中正确获取 每个数字代表一个主题,即:如果选择[i]==1,则子=数学 我无法在字符串上切换case,所以我尝试了if-else。。但是sub总是等于null声明??如何使sub接受if条件下的值 for (int i = 0; i < select.length; i++) { //// String sub=null;
for (int i = 0; i < select.length; i++)
{
////
String sub=null;
if(select[i]=="1") {sub="Maths";}
else if (select[i]=="2") {sub="English";}
else if (select[i]=="3") {sub="Physics";}
else if (select[i]=="4") {sub="MI";}
else if (select[i]=="5") {sub="Software";}
////
rs=stmt.executeQuery("SELECT * FROM attends where userid= '"+user_id+"' and cid= '"+select[i]+"' ");
if(rs.next())//can not take it
{
out.println("You can not enroll in '"+sub+"' ");
}
else//can take it
{
int countUpdated =stmt.executeUpdate("INSERT INTO enroll (userid, cid) values ('"+user_id+"', '"+select[i]+"')");
out.println("Successfully enrolled in '"+sub+"' ");
}
}
像这样试试
switch(select[i]) {
case "1":
sub="Maths";
break;
case "2":
sub="English";
break;
case "3":
sub="Physics";
break;
case "4":
sub="MI";
break;
case "5":
sub="Software";
break;
default:
sub="";
break
}
这是我在学习Java时遇到的第一个问题之一:==vs equals的困境。幸运的是,一旦你理解了它们的不同之处,就很容易正确地使用它们 无论何时处理对象,都会使用==运算符来确定两个变量是否实际指向同一个对象。对象在Java中是通过引用处理的,因此如果object1==object2,那么变量object1实际上引用了变量object2引用的同一个对象 这不是你想要的。您试图确定的不是两个字符串变量是否指向同一个对象,而是它们的内容是否相同。为此,应使用equals方法,如下所示:
String sub=null;
if(select[i].equals("1")) {sub="Maths";}
else if (select[i].equals("2")) {sub="English";}
else if (select[i].equals("3")) {sub="Physics";}
else if (select[i].equals("4")) {sub="MI";}
else if (select[i].equals("5")) {sub="Software";}
这允许您测试sub的内容是否与字符串1、2等相同
我相信你关于switch语句的假设是错误的:你可以在Java中打开一个字符串,而equals方法是在幕后使用的。比如说:
String sub;
switch (select[i]) {
case "1":
sub = "Maths";
break;
case "2":
sub = "English";
break;
case "3":
sub = "Physics";
break;
case "4":
sub = "MI";
break;
case "5":
sub = "Software";
break;
default:
sub = null;
break;
}
可能更可取,因为这是switch语句的设计目的。给出了错误HTTP状态500-无法为JSP编译类。。无法仅在enum和int上对字符串进行大小写排序variables@CodeX从Java7开始,可以打开字符串。关于这个问题,请参阅本手册。您在服务器上使用的是哪种JDK?如果有其他情况,请更正。。非常感谢。