zoukankan      html  css  js  c++  java
  • 对String中固定符号隔开的每项做无序不重复监测

    Response<List<String[]>> response = new Response<>();
            // 引擎方式校验
            // 在此对知识内容标签进行打标
            try {
                  //测试时使用
    //            String stringTemp = knowledgeCheckRequest.getExtensionQuestionList().get(0);
                if (!StringUtils.isEmpty(knowledgeCheckRequest.getAnswerList())
                    && !StringUtils.isEmpty(knowledgeCheckRequest.getAnswerList().get(0))) {
                    logger.info("=============knowledge content extract start============");
                    // 存放结果集
                    List<String[]> result = new ArrayList<>();
                    // 前台限制为空的时候不发送请求
                    // 1、知识内容抽取 在返回的结果中生成扩展知识的id,以区分哪个扩展知识的标签是重复的
                    List<String> tagList = tag(knowledgeCheckRequest).getData();
                    for (String tagItem : tagList) {
                        if (!StringUtils.isEmpty(tagItem)) {
                            // 遍历每一个进行校验
                            for(int m = 0; m < tagItem.length(); m++){
                                // 打标结果为空,自动舍弃
                                if(StringUtils.isEmpty(tagList.get(m))){
                                    continue;
                                }
    //                          String[] tagArray = stringTemp.split(" ");测试时使用
                                logger.info("=============知识内容校验开始============");
                                // 1、切词
                                String[] tagArray = tagList.get(m).split(" ");
                                // 2、比对逻辑
                                //disorderCompareTag(tagArray, tagList, result, m);
                                // 3、处理结果:标准:如果tagArray是空返回有重复结果
    //                            handleDisorderCompareTagResult(result, tagList, m, tagArray);
                                if(StringUtils.isEmpty(tagArray)){
                                    logger.info("=============标签全部相同============");
                                    String[] arrayTemp = {tagList.get(m),"true"};// 没有相同的
                                    result.add(arrayTemp);
    //                                return;
                                }else {
                                    for (String tag : tagArray) {
                                        if(!StringUtils.isEmpty(tag)){
                                            logger.info("=============标签部分相同============");
                                            String[] arrayTemp = {tagList.get(m),"false"};// 不为空证明结果没有与现有的标签重复
                                            result.add(arrayTemp);
                                            break;
                                        }
                                    }
                                    logger.info("=============标签全部相同============");
                                    String[] arrayTemp = {tagList.get(m),"true"};
                                    result.add(arrayTemp);
    //                                return;
                                }
                                continue;
                            }
                            // 结束遍历打标结果list,设置结果
                            logger.info("=============知识内容校验结束============");
                            response = Response.Success(knowledgeCheckRequest.getRequestId());
                            response.setInfo("");
                            response.setData(result);
                        }
                    }
                } else if (!StringUtils.isEmpty(knowledgeCheckRequest.getExtensionQuestionList())
                        && !StringUtils.isEmpty(knowledgeCheckRequest.getExtensionQuestionList().get(0))) {
                    // 存放结果集
                    List<String[]> result = new ArrayList<>();
                    // 2、扩展知识打标
                    List<String> tagList = tag(knowledgeCheckRequest).getData();
                    for (String tagItem : tagList) {
                        if (!StringUtils.isEmpty(tagList)) {
                            for(int m = 0; m < tagItem.length(); m++) {// 只有一条数据
                                // 遍历每一个进行校验
                                // 打标结果为空,提示错误
                                if (StringUtils.isEmpty(tagList.get(m))) {
                                    response = Response.Success(knowledgeCheckRequest.getRequestId());// 因为要显示错误信息,需要返回成功结果
                                    response.setInfo("打标结果为空");
                                    response.setData(null);
                                    break;
                                }
    //                          String[] tagArray = stringTemp.split(" ");测试时使用
                                logger.info("============扩展知识校验开始============");
                                // 1、切词
                                String[] tagArray = tagList.get(m).split(" ");
                                // 2、比对逻辑
                                //disorderCompareTag(tagArray, tagList, result, m);
                                // 3、处理结果:标准:如果tagArray是空返回有重复结果
                                handleDisorderCompareTagResult(result, tagList, m, tagArray);
                            }
                            // 结束遍历打标结果list,设置结果
                            logger.info("============扩展知识校验结束============");
                            response = Response.Success(knowledgeCheckRequest.getRequestId());
                            response.setInfo("");
                            response.setData(result);
                        }
                    }
                }
                logger.info("=============既不是知识内容抽取,又不是扩展知识打标============");
                response = Response.Fail(knowledgeCheckRequest.getRequestId());// 失败,页面什么都不做,说明传过来的参数有问题(知识标题或扩展知识标题为空)
                response.setInfo("既不是知识内容抽取,又不是扩展知识打标");
                response.setData(null);
            }catch (Exception e){
                e.printStackTrace();
            }
            return response;
    Response<List<String[]>> response = new Response<>();
    // 引擎方式校验
    // 在此对知识内容标签进行打标
    try {
    //测试时使用
    // String stringTemp = knowledgeCheckRequest.getExtensionQuestionList().get(0);
    if (!StringUtils.isEmpty(knowledgeCheckRequest.getAnswerList())
    && !StringUtils.isEmpty(knowledgeCheckRequest.getAnswerList().get(0))) {
    logger.info("=============knowledge content extract start============");
    // 存放结果集
    List<String[]> result = new ArrayList<>();
    // 前台限制为空的时候不发送请求
    // 1、知识内容抽取 在返回的结果中生成扩展知识的id,以区分哪个扩展知识的标签是重复的
    List<String> tagList = tag(knowledgeCheckRequest).getData();
    for (String tagItem : tagList) {
    if (!StringUtils.isEmpty(tagItem)) {
    // 遍历每一个进行校验
    for(int m = 0; m < tagItem.length(); m++){
    // 打标结果为空,自动舍弃
    if(StringUtils.isEmpty(tagList.get(m))){
    continue;
    }
    // String[] tagArray = stringTemp.split(" ");测试时使用
    logger.info("=============知识内容校验开始============");
    // 1、切词
    String[] tagArray = tagList.get(m).split(" ");
    // 2、比对逻辑
    //disorderCompareTag(tagArray, tagList, result, m);
    // 3、处理结果:标准:如果tagArray是空返回有重复结果
    // handleDisorderCompareTagResult(result, tagList, m, tagArray);
    if(StringUtils.isEmpty(tagArray)){
    logger.info("=============标签全部相同============");
    String[] arrayTemp = {tagList.get(m),"true"};// 没有相同的
    result.add(arrayTemp);
    // return;
    }else {
    for (String tag : tagArray) {
    if(!StringUtils.isEmpty(tag)){
    logger.info("=============标签部分相同============");
    String[] arrayTemp = {tagList.get(m),"false"};// 不为空证明结果没有与现有的标签重复
    result.add(arrayTemp);
    break;
    }
    }
    logger.info("=============标签全部相同============");
    String[] arrayTemp = {tagList.get(m),"true"};
    result.add(arrayTemp);
    // return;
    }
    continue;
    }
    // 结束遍历打标结果list,设置结果
    logger.info("=============知识内容校验结束============");
    response = Response.Success(knowledgeCheckRequest.getRequestId());
    response.setInfo("");
    response.setData(result);
    }
    }
    } else if (!StringUtils.isEmpty(knowledgeCheckRequest.getExtensionQuestionList())
    && !StringUtils.isEmpty(knowledgeCheckRequest.getExtensionQuestionList().get(0))) {
    // 存放结果集
    List<String[]> result = new ArrayList<>();
    // 2、扩展知识打标
    List<String> tagList = tag(knowledgeCheckRequest).getData();
    for (String tagItem : tagList) {
    if (!StringUtils.isEmpty(tagList)) {
    for(int m = 0; m < tagItem.length(); m++) {// 只有一条数据
    // 遍历每一个进行校验
    // 打标结果为空,提示错误
    if (StringUtils.isEmpty(tagList.get(m))) {
    response = Response.Success(knowledgeCheckRequest.getRequestId());// 因为要显示错误信息,需要返回成功结果
    response.setInfo("打标结果为空");
    response.setData(null);
    break;
    }
    // String[] tagArray = stringTemp.split(" ");测试时使用
    logger.info("============扩展知识校验开始============");
    // 1、切词
    String[] tagArray = tagList.get(m).split(" ");
    // 2、比对逻辑
    //disorderCompareTag(tagArray, tagList, result, m);
    // 3、处理结果:标准:如果tagArray是空返回有重复结果
    handleDisorderCompareTagResult(result, tagList, m, tagArray);
    }
    // 结束遍历打标结果list,设置结果
    logger.info("============扩展知识校验结束============");
    response = Response.Success(knowledgeCheckRequest.getRequestId());
    response.setInfo("");
    response.setData(result);
    }
    }
    }
    logger.info("=============既不是知识内容抽取,又不是扩展知识打标============");
    response = Response.Fail(knowledgeCheckRequest.getRequestId());// 失败,页面什么都不做,说明传过来的参数有问题(知识标题或扩展知识标题为空)
    response.setInfo("既不是知识内容抽取,又不是扩展知识打标");
    response.setData(null);
    }catch (Exception e){
    e.printStackTrace();
    }
    return response;
  • 相关阅读:
    wpf 中radioButton binding enum的时候的一个bug
    PLSQL创建Oracle定时任务
    [Transfer]ASP.NETV2.0快速入门、视频在线教程、个人网站、电子商务、宠物店等的使用
    [原创][VB]迷迷糊糊做成的DataList的分页关键字查询,自动编号,URL链接
    [Transfer][VB]DataGrid分页机制,通过编程做一个十分有个性、功能十分完善的分页效果
    [Transfer]声明中“AutoEventWireup”、“Codebehind”、“Inherits”分别表示什么意思?
    [Transfer]二种嵌套的DataGrid数据表格方法[DataRelation,FindControl]
    [Transfer]DataList 自定义分页 (C#)
    [Transfer]Visual Studio2005入门.Net系列视频教程
    JS 屏蔽大全
  • 原文地址:https://www.cnblogs.com/gaoxufei/p/6668445.html
Copyright © 2011-2022 走看看