一個(gè)小applet,先將一個(gè)textfield中輸入的句子存入一個(gè)txt文檔中,并且再次輸入進(jìn)行按鈕事件后換行追加?,F(xiàn)在通過另一個(gè)textfield輸入關(guān)鍵字,然后點(diǎn)擊搜索按鈕,在這個(gè)txt中搜索含此關(guān)鍵字的句子,也就是我輸入的單條單條的句子,然后顯示在另一個(gè)Textfield里。 不需要UI操作部分,只需要告訴我如何進(jìn)行搜索即可;
創(chuàng)新互聯(lián)建站自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元蘆淞做網(wǎng)站,已為上家服務(wù),為蘆淞各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
搜索部分可以通過讀取文件的每一行,然后String content = bf.readLine();
if(content.indexOf("searcStr") != -1) {
//found
}else{
//not found
}
你是搜文件名,還是搜文件內(nèi)容?要是搜文件內(nèi)容可就麻煩了,有可能的話你看看Java的一個(gè)開源庫Lucene。
要是簡單的搜文件名包含的字符串,大致應(yīng)該涉及到文件樹的遍歷算法,最多用一些簡單的正則表達(dá)式來匹配文件名,一般用遞歸可以實(shí)現(xiàn)任意級(jí)目錄樹的搜索。
給你個(gè)簡單的版本吧:
package?test.tool;
import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileReader;
import?java.io.IOException;
import?java.util.regex.Matcher;
import?java.util.regex.Pattern;
public?class?FindFile?{
private?String?fileName?=?"";
private?String?dir?=?"";
private?Matcher?m?=?null;
private?int?count?=?0;
public?FindFile()?throws?IOException?{
String?f?=?FindFile.class.getResource("findfile.properties").getFile();
BufferedReader?read?=?new?BufferedReader(new?FileReader(f));
dir?=?read.readLine().trim();
fileName?=?read.readLine().trim();
Pattern?p?=?Pattern.compile(fileName);
m?=?p.matcher("");
}
public?void?find()?{
File?root?=?new?File(dir);
for?(File?f?:?root.listFiles())?{
if?(f.isDirectory())?{
dir?=?f.getAbsolutePath();
find();
}?else?{
m.reset(f.getName());
if?(m.find())?{
count++;
System.out.println(f.getAbsolutePath());
}
}
}
}
public?static?void?main(String[]?args)?{
try?{
FindFile?ff?=?new?FindFile();
ff.find();
System.out.println("\n共找到文件數(shù)目:"?+?ff.count);
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}
里面用到的findfile.properties,舉個(gè)例子:
F:\download
vod.*.exe
運(yùn)行效果如下:
F:\download\firefox\vodplayer.exe
F:\download\ie\vodplayer.exe
共找到文件數(shù)目:2
String?a?=?"How?about?you??\r\n?Im?java?programmer.";
String[]?words?=?a.split("\\b");
for(String?w?:?words)
System.out.println(w);
看看這個(gè)例子是不是你想要的!
輸出結(jié)果為:
How
about
you
??
Im
java
programmer
.
public void test(){java.util.Scanner sc = new java.util.Scanner(System.in);System.out.println("請(qǐng)輸入字符串");String str = sc.next();char[] arr = str.toCharArray();java.util.Map map = new java.util.HashMap();for(int i = 0; i = 65 || (int)arr[i] = 97) || ((int)arr[i] = 122)){for(int j = 0; j arr.length; j++){if(arr[i] == arr[j]){++count;}}map.put(arr[i]+"", count);}}java.util.Iterator iter = map.keySet().iterator();while (iter.hasNext()) {String key = (String) iter.next();Integer val = map.get(key);System.out.println(key+"出現(xiàn)了:" + val);}System.out.println("輸入的字符串為:"+java.util.Arrays.toString(arr));}