对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())) {
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 = ; 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())) {
// 存放结果集
List<String[]> result = new ArrayList<>();
// 2、扩展知识打标
List<String> tagList = tag(knowledgeCheckRequest).getData();
for (String tagItem : tagList) {
if (!StringUtils.isEmpty(tagList)) {
for(int m = ; 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;
对String中固定符号隔开的每项做无序不重复监测的更多相关文章
- Android String.xml中的符号总结
<b></b>加粗字体 <i></i> 斜体字体 <u></u> 给字体加下划线 \n 换行 \u0020表示空格 \u2026 ...
- [转帖]Linux命令中特殊符号
Linux命令中特殊符号 转自:http://blog.chinaunix.net/uid-16946891-id-5088144.html 在shell中常用的特殊符号罗列如下:# ; ;; . ...
- (转)linux 中特殊符号用法详解
linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员 $普通用户 脚本中 #!/b ...
- C#中的@符号用法
C#中的@符号其实有很多的用法,我们来看看@有什么神奇之处. 1.限定字符串 用 @ 符号加在字符串前面表示其中的转义字符“不”被处理. 如果我们写一个文件的路径,例如"D:/文本文件&qu ...
- C++string中有关字符串内容修改和替换的函数浅析
1.assign() 原型: //string (1) basic_string& assign (const basic_string& str); //substring (2) ...
- C#中的@符号
C# 中的 @ 符号 C# 中的 @ 符号其实有很多的用法,我们来看看 @ 有什么神奇之处. 1. 限定字符串 用 @ 符号加在字符串前面表示其中的转义字符 “ 不 ” 被处理. 如果我们写一个文 ...
- 关于Java中语句符号及格式的理解
关于Java中语句符号及格式的理解 这篇文章是撰写的第一篇文章,在此作一下博主是一名在读的工科研究生,种种原因,研二开始决定转行从事程序员工作.开始的自学之路并不算非常顺畅,也走了一点弯路,但一直都坚 ...
- $ -----JavaScript 中美元符号 $ 的作用
JavaScript 中美元符号 $ 是什么 1.首先可以用来表示变量,比如变量 var s='asdsd'或var $s='asdasd'; 2.在正则表达式中,它可以匹配结尾:/sa$/.test ...
- String中的“equal方法”和“==”
二话不说,先来说下重写的事情: 在Java中,String .Math.还有Integer.Double....等这些封装类重写了Object中的equals()方法,让它不再比较其对象在内存中的地址 ...
随机推荐
- 微信jssdk常见错误及解决方法
调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息.以下为常见错误及解决方法: invalid url domain当前页面所在域名与使用 ...
- 【C语言】 重拾
[C语言] 因为以前学过C语言,只不过太长时间不用,已经忘得差不多了… 所以这篇文章的性质是把C语言中一些对于现在的我不是很符合预期的知识点记录一下. ■ HelloWorld程序 HelloWorl ...
- java web (sevlet)请求之get,post,forward,redirect
[参考]web请求之get,post,forward,redirect 1,form表单:可以采用post或者get请求,客户端主动跳转,url地址会改变为提交后的地址 2,forward:forwa ...
- CentOS安装和配置Docker和Nginx
纯粹记录下: 1 安装Docker容器: yum install docker-ce 2. 搜索官网nginx docker search nginx 3. 找到需要的版本安装: docker pul ...
- ARM7与GSM实现的简单的远程控制
幸好单从控制GSM上来说,并不是太难,它是基于串口通信的,而且全是基于AT指令的控制,说起来,就只是熟悉下指令,而且这次比赛用到的指令也比较少,主要是关于短消息方面的指令.我们用到的指令如下: AT& ...
- iOS - 国内注册境外 Apple id 账号
注册前准备工作 需要手头MAC一台 AppStore下载VPN Plus FQ到美国(ipip.net 查看当前ip 是否是在境外 当前ip 在境外才可以哦) 动手搞起来 https://applei ...
- 恒生UFX交易接口基本介绍说明
1.恒生UFT和UFX有什么区别? UFT是一个极速交易系统,UFX是一个统一接入系统.交易系统很显然是可以进行股票交易的,UFX是所有后台交易系统的接入系统,不管后台是什么样子的交易系统都是可以通过 ...
- 三种不同类型的ssh隧道
何谓SSH隧道 隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术.这里我们研究ssh隧道,所以所有的网络通讯都是加密的.又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个 ...
- Centos6.8 安装dlib库时出错【升级gcc 到4.9.0以上】
在centos6.8上安装dlib库时出现错误: 1.CMake must be installed to build the following extensions: dlib 没有安装CMake ...
- 在elementUI中使用 el-autocomplete 实现远程搜索的下拉框
参考;https://blog.csdn.net/qq_37746973/article/details/78402812?utm_source=blogxgwz1 https://blog.csdn ...