首先来看一下String类的indexOf()方法的用法:
public class FirstDemo1 {
/**
*API中String的常用方法
*/
// 查找指定字符串是否存在
public static void main(String[] args) {
String str1 = "abcdefghijklmnabc";
// 从头开始查找是否存在指定的字符
System.out.println(str1.indexOf("c"));
// 从第四个字符位置开始往后继续查找
System.out.println(str1.indexOf("c", 3));
//若指定字符串中没有该字符则系统返回-1
System.out.println(str1.indexOf("x"));
}
}
程序运行结果:
对于一个多选题,假设有A,B,C,D四个选项,正确答案是 "ABC",
首先,用getParameterValues()方法接收复选框的值,是一个数组: String t3[]=request.getParameterValues("checkbox1");
然后,用Arrays.toString(String)把这个数组转化成一个字符串: String a3=Arrays.toString(t3);
接下来就可以做判断了:
1.全选对的话,字符串 "C" 一定在答案字符串的第三位
2.多选或错选的话,字符串 "D" 一定会出现在答案字符串中
3.不选的话,答案字符串为空
4.除去以上情况,剩下的是对而不全的情况
判断代码如下:
String t3[]=request.getParameterValues("checkbox1");
String a3=Arrays.toString(t3); if(t3!=null){
//多选,正确答案ABC
if(t3.length==4 || t3.length==0 ||a3.indexOf("D")!=-1){ //多选或不选或错选
score=score+0;
}
else if(a3.indexOf("C")==3){ //全对
score=score+60;
}
else{
score=score+30;
}
}
else{
score=score+0;
}
貌似用switch(case)方法也可以实现,不过代码复杂了些。