java搜索
① java查找
那就定义一个数组,遍历数组,找出你需要的那个字符串
② java编写简单的搜索方法如何实现
可以使用全文java搜索引擎来实现。你可以去研究一下Lucene。基本上是开源搜索引擎中的标准。
③ java 搜索引擎
用lucene检索包,很强大。到官网下一个最新版本就可以进行二次开发。
至于中文支持,可以使用流行的中文分词包,建议用用paoding。
④ java 怎么搜索方法
这个,先要你明白你需要什么类,然后查看此类的API帮助文件,API帮助文件就是Java的一个类库,教你怎么使用类资源的,下载地址:http://gceclub.sun.com.cn/chinese_java_docs.html
⑤ JAVA如何实现全局搜索
"select * from where XXX like XXX";
用Actionform对象获取数据库值
定义ArrayList对象
代码片段
ArrayList ar = new ArrayList();
node.setId(rs.getString("id")); node.setName(rs.getString("name"));
node.setPassword(rs.getString("password"));
ar.add(node);
jsp页面代码片段
<%
ArrayList ar = (ArrayList)session.getAttribute("ar");
Node node = null;
Iterator it = ar.iterator();
while(it.hasNext())
{
node = (Node)it.next();
%>
<tr>
<td><%=node.getId()%></td>
<td><%=node.getName()%></td>
<td><%=node.getPassword()%></td>
</tr>
<br>
<%
}
%>
今天刚做过这个功能
不懂话 留言
我用的是mysql数据库
⑥ JAVA 动态搜索(查找) 在线等
我用的是oracle 数据库。查询String sql = "select EMPNO,ENAME,SAL,DEPTNO from emp where ENAME like ?";显示4个字段
///主方法
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
public class TrendSearch extends JFrame {
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private MyTableModel tableModel;
private List<Object> list = new ArrayList<Object>();
private Staff staff;
private Connection connection = (Connection) OraSqlConnection
.getConnection();
ResultSet rs = null;
/**
* @param args
*/
public TrendSearch() {
initComponents();
}
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextField1 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jTextField1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
jTextField1KeyReleased(evt);
}
});
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().add(jTextField1, java.awt.BorderLayout.NORTH);
tableModel = new MyTableModel(new String[] { "EMPNO", "ENAME", "SAL",
"DEPTNO" }, new ArrayList());
jTable1.setModel(tableModel);
jScrollPane1.setViewportView(jTable1);
getContentPane().add(jScrollPane1, java.awt.BorderLayout.SOUTH);
pack();
}
private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
String s = jTextField1.getText().trim();
list.removeAll(list);
if (s != null && !"".equals(s)) {
PreparedStatement pstmt = null;
System.out.println(s);
String sql = "select EMPNO,ENAME,SAL,DEPTNO from emp where ENAME like ?";
try {
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, s + "%");
rs = pstmt.executeQuery();
while (rs.next()) {
staff = new Staff();
staff.setEMPNO(rs.getString(1));
staff.setENAME(rs.getString(2));
staff.setSAL(rs.getString(3));
staff.setDEPTNO(rs.getString(4));
list.add(staff);
}
tableModel.data = list;
tableModel.fireTableDataChanged();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private class MyTableModel extends BaseTableModel {
public MyTableModel(String[] cols, List<Object> data) {
super(cols, data);
// TODO Auto-generated constructor stub
}
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
Staff s = (Staff) list.get(rowIndex);
switch (columnIndex) {
case 0:
return s.getDEPTNO();
case 1:
return s.getENAME();
case 2:
return s.getSAL();
case 3:
return s.getDEPTNO();
default:
break;
}
return null;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TrendSearch ts = new TrendSearch();
ts.setVisible(true);
}
}
///tabel 类
import java.util.List;
import javax.swing.table.AbstractTableModel;
public abstract class BaseTableModel extends AbstractTableModel {
public String[] cols;
public List<Object> data;
public BaseTableModel(String[] cols, List<Object> data) {
this.cols = cols;
this.data = data;
}
public int getColumnCount() {
return cols.length;
}
public int getRowCount() {
return data.size();
}
public String getColumnName(int colIndex) {
return cols[colIndex];
}
}
//javabean 类
public class Staff {
private String EMPNO;
private String ENAME;
private String SAL;
private String DEPTNO;
public String getEMPNO() {
return EMPNO;
}
public void setEMPNO(String empno) {
EMPNO = empno;
}
public String getENAME() {
return ENAME;
}
public void setENAME(String ename) {
ENAME = ename;
}
public String getSAL() {
return SAL;
}
public void setSAL(String sal) {
SAL = sal;
}
public String getDEPTNO() {
return DEPTNO;
}
public void setDEPTNO(String deptno) {
DEPTNO = deptno;
}
}
///JDBC类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* @author jiangzongshuai
*
*/
public class OraSqlConnection {
private static String className = "oracle.jdbc.driver.OracleDriver";
private static String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
private static String username = "scott";
private static String password = "tiger";
private static Connection conn = null;
public static Connection getConnection() {
try {
if (conn !=null) return conn;
Class.forName(className);
conn = DriverManager.getConnection(url, username, password);
return conn;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
⑦ 用java 实现一个搜索功能,要求搜索某个关键字,然后把包括这个关键字的一段话输出到文档中。qq454284728
一、什么叫搜索引擎?
在Internet上有上百亿可用的公共Web页面,即使是最狂热的冲浪者也不会访问到所有的页面,而只能看到其中的一小部分,更不会在这浩瀚的Web海洋中发现你那即使精彩却渺小的一隅。当然你可以为你的存在做广告,可以用大大的字把你的URL刻在你的身体上,然后裸体穿过白宫草坪,但你得保证媒体正好在那里,并注视到了这一切。与其这样做,不如好好去理解搜索引擎是如何工作的?又怎样选择和使用"keywords"(关键词)等等。
本文的目的就是让众多的页面设计者在了解搜索引擎的基础上,寻求如何使自己的页面在搜索引擎索返回的列表中获得好的排列层次的方法。
"搜索引擎"这个术语一般统指真正意义上的搜索引擎(也就是全文检索搜索引擎)和目录(即目录式分类搜索引擎),其实他们是不一样的,其区别主要在于返回的搜索结果列表是如何编排的。
1、目录
目录(比如Yahoo!)返回的列表是由人工来编排的。
这类引擎提供了一份人工按类别编排的网站目录,各类下边排列着属于这一类别的网站的站名和网址链接,再记录一些摘要信息,对该网站进行概述性介绍(摘要可能是你提交过去的,也可以是引擎站点的编辑为你的站点所做的评价)。人们搜索时就按相应类别的目录查询下去。
这类引擎往往还伴有网站查询功能,也称之为网站检索,即提供一个文字输入框和一个按钮。我们可以在文字框中输入要查找的字、词或短语,再点击按钮,便会在目录中查找相关的站名、网址和内容提要,将查到的内容列表送过来。目前国内Sohoo、常青藤等都是这种搜索方式。
2、搜索引擎
搜索引擎(如HotBot)是自动创建列表的。
搜索引擎看起来与目录的网站查询非常相似,也提供一个文字输入框和按钮,使用方法也相同,而且有些也提供分类目录,但两者却有本质上的区别。
目录的资料库中,搜集保存的是各网站的站名、网址和内容提要;搜索引擎的资料库中,搜集保存的则是各网站的每一个网页的全部内容,范围要大得多。
搜索引擎是以全文检索的方式工作的。全文检索查到的结果不是站名、网址和内容提要,而是与你输入的关键词相关的一个个网页的地址和一小段文字。在这段文字中,可能没有你输入的那个关键词,它只是某一网页的第一段话,甚至是一段无法看懂的标记,但在这个网页中,一定有你所输入的那个关键词,或者相关的词汇。打个比方说,网站查询可以查到网上有哪些报纸,如《文汇报》、《大公报》,而全文检索则可以查到网上这些报纸的每一篇文章中的词汇。
3、两者相结合的搜索引擎
某些搜索引擎同时也提供目录。包含在搜索引擎中的目录通常质量比较高,也能从那里找到许多好站点。因为即使你把你的站点提交过去,也并不能保证一定被加到目录中去,他们把注意力放在那些已经在别的目录中存在的站点上,并有选择地寻找有吸引力的加到自己的目录中。
搜索引擎和目录各有各自不可替代的功用。目录比较简单,要想获得一个好的排列层次,除了你努力创建一个好内容的高品质站点外别无他法。搜索引擎复杂得多,它们随时都在自动地索引众多WEB站点的最新网页,所以常常会发现目录所不能得到的信息。如果你改动了你的页面,搜索引擎还随时会发现这个变化,并重新排列你在列表中的位置。而目录就做不到。下面专门讨论搜索引擎的工作原理以及如何提高在搜索引擎列表中的排列位置。
搜索引擎(search engines)是对互联网上的信息资源进行搜集整理,然后供你查询的系统,它包括信息搜集、信息整理和用户查询三部分。
搜索引擎是一个为你提供信息“检索”服务的网站,它使用某些程序把因特网上的所有信息归类以帮助人们在茫茫网海中搜寻到所需要的信息。
早期的搜索引擎是把因特网中的资源服务器的地址收集起来,由其提供的资源的类型不同而分成不同的目录,再一层层地进行分类。人们要找自己想要的信息可按他们的分类一层层进入,就能最后到达目的地,找到自己想要的信息。这其实是最原始的方式,只适用于因特网信息并不多的时候。随着因特网信息按几何式增长,出现了真正意义上的搜索引擎,这些搜索引擎知道网站上每一页的开始,随后搜索因特网上的所有超级链接,把代表超级链接的所有词汇放入一个数据库。这就是现在搜索引擎的原型。
随着yahoo!的出现,搜索引擎的发展也进入了黄金时代,相比以前其性能更加优越。现在的搜索引擎已经不只是单纯的搜索网页的信息了,它们已经变得更加综合化,完美化了。以搜索引擎权威yahoo!为例,从1995年3月由美籍华裔杨致远等人创办yahoo!开始,到现在,他们从一个单一的搜索引擎发展到现在有电子商务、新闻信息服务、个人免费电子信箱服务等多种网络服务,充分说明了搜索引擎的发展从单一到综合的过程。
然而由于搜索引擎的工作方式和因特网的快速发展,使其搜索的结果让人越来越不满意。例如,搜索“电脑”这个词汇,就可能有数百万页的结果。这是由于搜索引擎通过对网站的相关性来优化搜索结果,这种相关性又是由关键字在网站的位置、网站的名称、 标签等公式来决定的。这就是使搜索引擎搜索结果多而杂的原因。而搜索引擎中的数据库因为因特网的发展变化也必然包含了死链接。
怎样才能使搜索引擎精确地为人们提供相关的信息应该是它以后发展的方向,而不是只求综合服务。
搜索引擎指自动从英特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。英特网上的信息浩瀚万千,而且毫无秩序,所有的信息象汪洋上的一个个小岛,网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为你绘制一幅一目了然的信息地图,供你随时查阅。
搜索引擎的工作原理
搜索引擎的工作原理大致可以分为:
1、搜集信息:搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛(spider)的自动搜索机器人程序来连上每一个网页上的超连结。机器人程序根据网页链到其他中的超链接,就象日常生活中所说的“一传十,十传百……”一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超连结,机器人便可以遍历绝大部分网页。
2、整理信息:搜索引擎整理信息的过程称为“建立索引”。搜索引擎不仅要保存搜集起来的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来再快的计算机系统也没有用。
3、接受查询:用户向搜索引擎发出查询,搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,它按照每个用户的要求检查自己的索引,在极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回主要是以网页链接的形式提供的,这些通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息以帮助用户判断此网页是否含有自己需要的内容。
.
⑧ java如何实现文件搜索功能
java实现文件搜索主要使用file类和正则表达式,如下示例:
packagecom.kiritor.util;
importjava.io.File;
importjava.io.FileFilter;
importjava.util.Arrays;
importjava.util.Collections;
importjava.util.List;
/**
*文件的相关操作类
*
*@authorKiritor
*/
publicclassFileOperation{
;
privatestaticStringfilePath;
privatestaticFile[]fileList=null;//保存文件列表,过滤掉目录
publicFileOperation(){
}
/**构造函数的参数是一个目录*/
publicFileOperation(Stringpath){
Filefile=newFile(path);
if(file.isDirectory())
this.contentPath=path;
else
this.filePath=path;
}
/**获取文件列表*/
publicstaticFile[]getFiles(){
if(contentPath==null){
Filefile=newFile(filePath);
fileList=newFile[1];
fileList[0]=file;
returnfileList;
}
fileList=newFile(contentPath).listFiles(newFileFilter(){
/**使用过滤器过滤掉目录*/
@Override
publicbooleanaccept(Filepathname){
if(pathname.isDirectory())
{
returnfalse;
}else
returntrue;
}
});
returnfileList;
}
/**对当前目录下的所有文件进行排序*/
publicstaticFile[]sort(){
getFiles();
Arrays.sort(fileList,newFileComparator());
returnfileList;
}
publicstaticvoidtree(Filef,intlevel){
StringpreStr="";
for(inti=0;i<level;i++){
preStr+="";
}
File[]childs=f.listFiles();
//返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
for(inti=0;i<childs.length;i++){
System.out.println(preStr+childs[i].getName());
if(childs[i].isDirectory()){
tree(childs[i],level+1);
}
}
}
//提供一个"比较器"
.util.Comparator<File>{
@Override
publicintcompare(Fileo1,Fileo2){
//按照文件名的字典顺序进行比较
returno1.getName().compareTo(o2.getName());
}
}
}
⑨ JAVA实现BAIDU的搜索功能
下列的程序实现了数据文件zip方式的压缩和解压缩方法。randomData()函数随机生成
50个double数据,并放在doc字符串变量中;openFile()函数读取ZIP压缩文件;saveFile()函数
将随机生成的数据存到ZIP格式的压缩文件中。
import java.util.zip.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.Math;
import java.io.*;
public class TestZip extends Frame implements ActionListener {
TextArea textarea; ‖显示数据文件的多行文本显示域
TextField infotip; ‖显示数据文件未压缩大小及压缩大小单行文本显示域
String doc; ‖存储随机生成的数据
long doczipsize = 0;‖压缩数据文件的大小
public TestZip(){
‖生成菜单
MenuBar menubar = new MenuBar();
setMenuBar(menubar);
Menu file = new Menu("File",true);
menubar.add(file);
MenuItem neww= new MenuItem("New");
neww.addActionListener(this);
file.add(neww);
MenuItem open=new MenuItem("Open");
open.addActionListener(this);
file.add(open);
MenuItem save=new MenuItem("Save");
save.addActionListener(this);
file.add(save);
MenuItem exit=new MenuItem("Exit");
exit.addActionListener(this);
file.add(exit);
‖随机生成的数据文件的多行文本显示域
add("Center",textarea = new TextArea());
‖提示文本原始大小、压缩大小的单行文本显示域
add("South",infotip = new TextField());
}
public static void main(String args[]){
TestZip ok=new TestZip();
希望采纳 谢谢
⑩ 用Java如何实现站内搜索
微小的站点:SQL like 不模糊,效率低
小的站点:google,网络都有站内接口,推荐的。
一般:关键字搜索+数据库索引+一些搜索技巧,比如美丽的套鞋 变套鞋,之类。。
自己做搜索引擎:lucene 是个老牌的开源搜索工具了,你要不看看?书页很多,什么lucene in action ,反正原理就是打散内容,排序。做索引什么的。都有接口,调用下就好了。。不过还是比较麻烦的。站内只要对数据库标题或者内容做索引,ID做标志就好了。