推广 热搜: 广告  账号  设备  程序      魅力  十大  中国  关键词 

java 查找关键字_java实现简单的关键字查找

   日期:2024-12-16     作者:llexw    caijiyuan  
核心提示:需求:从一个指定的字符串中,查找是否存在指定的关键字,有则将其按顺序找出。例如:从"我在开会&

需求:从一个指定的字符串中,查找是否存在指定的关键字,有则将其按顺序找出。例如:从"我在开会,一会打电话,然后去吃饭" 查找是否含有 "教研"、"上课"、"开会"、"打电话"、"吃饭" ,结果是查找到"开会" "打电话" "吃饭"。

分析:可以简单的进行字符串扫描,对每一个关键字进行匹配,开始位置为0,扫描到则下次开始的位置加上字符串的长度。

代码如下

package cc.dc.test;

import java.util.ArrayList;

import java.util.List;

public class Test2 {

//记录找到的关键字

private static List keywordsList = new ArrayList();

public static void main(String[] args) {

//待查找的字符串

String content = "我在开会,一会打电话,然后去吃饭";

//搜索的关键字

String[] subStrings = {"打电话","开会","吃饭"};

getRemindString(content,subStrings);

for(String str:keywordsList){

System.out.print(str+"--");

}

}

private static void getRemindString(String content, String[] subStrings) {

int[] array = new int[content.length()];

for (int i = 0; i < array.length; i++) {

//默认设置为10000,最后判断不是10000的位置就是关键字

array[i] = 10000;

}

for (int j = 0; j < subStrings.length; j++) {

String findStr = subStrings[j];

// 待查找字符串的长度

int findLength = findStr.length();

for (int i = 0; i < content.length();) {

if ((findLength + i) <= content.length()

&& content.substring(i, findLength + i).equals(findStr)) {

// 查找到的位置

//System.out.println("find " + i + "--"+ content.substring(i, findLength + i));

//找到,则设置其在subStrings的位置

array[i] = j;

// 找到则下次查找的位置+字符长度

i += findLength;

} else {

// 没有找到则从下一个位置开始查找

i++;

}

if (i + findLength > content.length()) {

// 如果下一次查找的endIndex>str.length()则说明不可能再有该字符串了

break;

}

}

}

for (int i = 0; i < array.length; i++) {

//所有不是10000的位置都是查找到关键字的位置

if (array[i] != 10000) {

//System.out.println("--" + subStrings[array[i]] + "--");

keywordsList.add(subStrings[array[i]]);

}

}

}

}

结果如下

本文地址:http://zleialh.xhstdz.com/xwnews/527.html    物流园资讯网 http://zleialh.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号