數(shù)組從第一個開始比較,完全相同(當(dāng)前數(shù)組值和輸入值一模一樣)A就賦值為true;不一樣A的值不變
建水網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
這個。。。我隨便亂說幾句啊,說的不對別見笑。
有一個數(shù)組 當(dāng)中存有一些字符串
另外有一個字典文件 我也將它導(dǎo)入一個數(shù)組 有50000多個單詞
然后要找出字符串中包含的單詞
由你給的條件可知:
1。數(shù)組 應(yīng)該是從前到后依次順序掃描字符串。
2。50000多個單詞的字典文件一定優(yōu)化。具體優(yōu)化要看具體內(nèi)容吧。
比如你可以按單詞的首字母排序,然后分組。等掃描字符串的時候可以分組比較。但這種方法應(yīng)該沒省多少時間。
你還可以把50000多個單詞的字典文件按單詞的長度進行分組。比如1個字母的分成一組,二個字母的分成一組。。。。N個字母的分成一組,這樣就分成了N組。然后掃描字符串的時候你可以按后續(xù)匹配(好象叫這個算法吧,名字記不清了)算法,這樣就可以省很多時間了。
你還可以這樣做,因為你要查的是單詞,單詞一定有意義。那你可以直接把你的字符串?dāng)?shù)組先進行語法、語義分析并分割,然后再去匹配你的字典。這樣應(yīng)該是最快的。但這要用到自然語言處理。。。
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;
public class search
{
//查找方法,參數(shù),文件絕對路徑,查找關(guān)鍵字
public static boolean search(String filepath,String key)
{
try
{
File f = new File(filepath);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = "";
//int i = 1;
while((s = br.readLine()) != null)
{
if(s.indexOf(key) != -1)
{
return true;
}
}
return false;
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
}
public static void main(String args[])
{
System.out.println(search.search("d://t.txt","l2"));
}
}
修改了下,加兩個變量,可以指出查找的位置。
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;
public class search
{
//查找方法,參數(shù),文件絕對路徑,查找關(guān)鍵字
public static String search(String filepath,String key)
{
try
{
File f = new File(filepath);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = "";
int i = 1;
int m = 0;
while((s = br.readLine()) != null)
{
if((m = s.indexOf(key)) != -1)
{
return "第"+i+"段,第"+m+"處";
}
i++;
}
return null;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
public static void main(String args[])
{
System.out.println(search.search("d://t.txt","asd"));
}
}
這個,查漢字是沒有問題的。
另外,你要全文檢索的話,indexOf()還有個方法,indexOf(int start,String key),指定開始查找的位置跟關(guān)鍵字,你查到一處后,將這個數(shù)值加1,做為繼續(xù)查找的開始位置就可以了。