对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()方法,让它不再比较其对象在内存中的地址 ...
随机推荐
- QLabel设置文字大小和颜色
https://blog.csdn.net/fm0517/article/details/4805462 ui.label是QLabel ui.label_4->setText("so ...
- Activiti 工作流变量的修改方法
修改方法: //此方法的更新会同时更新 ru_ 和 hi_的数据 @Override public Map<String, Object> updateProcessFormValue(S ...
- Linux 设备树属性在驱动中获取方法
获取设备树中的属性,可以直接当设备树为配置文件,方便,快捷. 一般probe之后,调用的 probe函数的参数, 是一个设备结构体. 拿 spi 为例子 static int wk2xxx_probe ...
- mongo连接拒绝10061原因
首先检查Mongo是否启动: 启动 再次检查mongo配置文件是否允许其他人访问,默认路由是否加上 .进入mongodb安装目录的bin目录,新增mongodb.conf文件,输入 bind_ip=0 ...
- Html.Partial,Html.RenderPartial Html.Action,Html.RenderAction区别
@Html.Partial,@Html.RenderPartial 这两者的共同点都是在视图中去调用另外一个视图,区别是 Html.Partial 有返回值 ( MvcHtmlStrin ...
- 【12c】12c RMAN新特性之通过网络远程恢复数据库(RESTORE/Recover from Service)
[12c]12c RMAN新特性之通过网络远程恢复数据库(RESTORE/Recover from Service) 通过网络远程恢复数据库(Restore/Recover from Service) ...
- 【LInux】统计某文件夹下目录的个数
统计当前文件夹下文件的个数,包括子文件夹里的ls -lR|grep "^-"|wc -l 统计文件夹下目录的个数,包括子文件夹里的ls -lR|grep "^d" ...
- swiper4自动轮播切换手动触碰后停止踩坑——属性disableOnInteraction
swiper4轮播设置autoplay自动切换后,即默认设置: <script> var mySwiper = new Swiper('.swiper-container', { auto ...
- python让实例作用于for循环并当做list来使用
python如果想让一个类被用于for....in 循环,类型list和tuple那样,可以实现__iter__方法. 这个方法返回一个迭代对象,python的for循环就会不断调用该迭代对象的ne ...
- 关于HOOK KiPageFault需要用到自旋锁研究
KeAcquireSpinLockRaiseToDpc 可以使用这个函数 来开启自旋锁