• Servlet 中为多项选择题判分---String类的indexOf()方法妙用


    首先来看一下String类的indexOf()方法的用法

     1 public class FirstDemo1 { 
     2   /** 
     3     *API中String的常用方法 
     4     */ 
     5   // 查找指定字符串是否存在 
     6   public static void main(String[] args) { 
     7     String str1 = "abcdefghijklmnabc"; 
     8     // 从头开始查找是否存在指定的字符 
     9     System.out.println(str1.indexOf("c")); 
    10     // 从第四个字符位置开始往后继续查找 
    11     System.out.println(str1.indexOf("c", 3)); 
    12     //若指定字符串中没有该字符则系统返回-1 
    13     System.out.println(str1.indexOf("x")); 
    14   } 
    15 }

    程序运行结果:

    对于一个多选题,假设有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.除去以上情况,剩下的是对而不全的情况

    判断代码如下:

     1 String t3[]=request.getParameterValues("checkbox1");
     2 String a3=Arrays.toString(t3);
     3 
     4 if(t3!=null){
     5 //多选,正确答案ABC
     6 if(t3.length==4 || t3.length==0 ||a3.indexOf("D")!=-1){ //多选或不选或错选
     7 score=score+0;
     8 }
     9 else if(a3.indexOf("C")==3){ //全对
    10 score=score+60;
    11 }
    12 else{
    13 score=score+30;
    14 }
    15 }
    16 else{
    17 score=score+0;
    18 }

    貌似用switch(case)方法也可以实现,不过代码复杂了些。

  • 相关阅读:
    代码走读 airflow 2
    sql 查询相关
    控制你的鼠标和键盘
    TODO
    二进制流的操作收集
    daterangepicker-双日历
    datetimepicker使用
    ADO执行事务
    动态添加表sql
    执行带返回值的存储过程
  • 原文地址:https://www.cnblogs.com/yangyi9343/p/4893487.html
Copyright © 2020-2023  润新知