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做標志就好了。