重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果是想用java代码实现的话,也简单。只要百度肯给你接口。
成都创新互联从2013年开始,是专业互联网技术服务公司,拥有项目网站制作、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元潜江做网站,已为上家服务,为潜江各地企业和个人服务,联系电话:18982081108
拿到接口后,就可以通过接口来进行数据交互,
可是一般来说,这个可能性会比较小。
再就是说,也可以用技术桥接,不过这样是犯法的。
基于这样的情况下,如果你想实现一个类似于百度这样的搜索功能。
只有自己去创建一个这样的功能出来,网络上的很多资源都是公开的,
只看你有没有本事取而已。
就用readline方法,
一行一行地查吧,
楼上的算法还是可行的,
要指出在哪一行,
直接在readline中设置一个变量就可以了,
扫过一行自增就行
另外个人认为,
还要考虑这样一种情况,
比如说关键字为
java
但
ja
va
被分开在两行中了,
这个怎么算呢?
public class $ {
public static void main(String... _) {
String str = "123456789 abcdefg hijklmn...";
System.out.println(str.indexOf("456"));
System.out.println(str.indexOf("45a"));
}
}
结果:
3
-1
如果有,就返回他的起始位置,注意是从0开始
没有,就返回-1
用循环
String[] key = { "456", "abc", "45a" };
String str = "123456789 abcdefg hijklmn...";
for (int i = 0; i key.length; i++) {
System.out.println(key[i] + "的起始位置:" + str.indexOf(key[i]));
}
把Java所有的关键字存到map等容器里边(总共也没几个),判断单词是否是关键字,再用正则表达式判断是字符串,注释还是关键字,若是则加颜色,否则不加颜色。
多关键字查询
1.有关键字查询,与非关键字查询即不输入任务条件查询
2.限制关键字的个数与输入长度,以方便程序设计与维护,以及对性能的提高
3.存储过程中关键字条件默认为NULL,通过判断是否为NULL来获取是否有信息
4.通过自定义函数来获取关键字出现的次数,使用REPLACE方法代替LIKE的方式查询,以大幅度提高性能
6.通过取得关键字出现的次数,来显示有循序的结果集
--简单实例代码,我用的是Sqlserver
,假设只允许输入2个关键字查询
CREATE
PROC
Find
(
@AllWords
bit,
--是否关键字查询
@Word1
VARCHAR(15)
=
NULL,
@Word2
VARCHAR(15)
=
NULL
)
AS
IF
@AllWords
=
BEGIN
查询全部
END
IF
@AllWords
=
1
BEGIN
--WordCount接收2个参数(关键字
,需查询字段),返回个整形,
SELECT
*,dbo.WordCount(@Word1,
FindField)+
dbo.WordCount(@Word2,FindField)
AS
Rank
FROM
内容表
ORDER
BY
Rank
DESC
--如果未需要具有关键字的数据就Rank0就行了
END
--自定义函数
CREATE
FUNCTION
dbo.WordCount
(@Word
VARCHAR(15),
@FindField
VARCHAR(1000))
RETURNS
SMALLINT
AS
BEGIN
--未有关键字或未有查询字段返回0
IF
@Word
IS
NULL
OR
@FindField
IS
NULL
RETURN
--使@BiggerWord长度大于关键字用于下面的减法
DECLARE
@BiggerWord
VARCHAR(21)
SELECT
@BiggerWord
=
@Word
+
'x'
--取得替换后的长度
DECLARE
@BigCounts
VARCHAR(2000)
SELECT
@BigCounts
=
REPLACE
(@FindField,
@Word,
@BiggerWord)
--用替换后的长度
减掉
当前查询字段的长度
=
出现的次数
也就是上面加的'X'
RETURN
LEN(@BigCounts)
-
LEN(@FindField)
END
--自己写的,希望对你有帮助
--注:对于上面这样的模式查询,更有利于扩展,同时可以查询主内容与副内容甚至更多,达到更精确的关键字查询