代码改变世界

对String中固定符号隔开的每项做无序不重复监测

2017-04-05 14:05  小诩  阅读(240)  评论(0编辑  收藏  举报
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;