现可以提供两种思路:
①String或是StringBuffer(建议用)
中的indexOf("中华")方法,查找给定的的字符串中是否有给定词表中的词.
先编写一个状态机,用于测试给定字符串中的词是否满足词表中的内容.
写在最后:1)建议使用第一种方法,因为在java
内部实现的查找操作其实
和你想得思路是相同的,不过他的效率会高些.
import?java.io.Reader;
import?java.io.StringReader;
import?org.apache.lucene.analysis.*;
import?org.apache.lucene.analysis.cjk.CJKAnalyzer;
import?org.apache.lucene.analysis.cn.ChineseAnalyzer;
import?org.apache.lucene.analysis.standard.StandardAnalyzer;
import?org.mira.lucene.analysis.MIK_CAnalyzer;
public?class?JeAnalyzer?{
public?static?void?testStandard(String?testString)?{
try?{
Analyzer?analyzer?=?new?StandardAnalyzer();
Reader?r?=?new?StringReader(testString);
StopFilter?sf?=?(StopFilter)?analyzer.tokenStream("",?r);
System.err.println("=====standard?analyzer====");
Token?t;
while?((t?=?sf.next())?!=?null)?{
System.out.println(t.termText());
}
}?catch?(Exception?e)?{
e.printStackTrace();
public?static?void?testCJK(String?testString)?{
Analyzer?analyzer?=?new?CJKAnalyzer();
System.err.println("=====cjk?analyzer====");
public?static?void?testChiniese(String?testString)?{
Analyzer?analyzer?=?new?ChineseAnalyzer();
TokenFilter?tf?=?(TokenFilter)?analyzer.tokenStream("",?r);
System.err.println("=====chinese?analyzer====");
while?((t?=?tf.next())?!=?null)?{
String?result?=?"";
Analyzer?analyzer?=?new?MIK_CAnalyzer();
TokenStream?ts?=?(TokenStream)?analyzer.tokenStream("",?r);
while?((t?=?ts.next())?!=?null)?{
result?+=?t.termText()?+?",";
return?result;
public?static?void?main(String[]?args)?{
String?testString?=?"中文分词的方法其实不局限于中文应用,也被应用到英文处理,如手写识别,单词之间的空格就很清楚,中文分词方法可以帮助判别英文单词的边界";
System.out.println("测试的语句?"+testString);
for?(int?i?=?0;?i?sResult.length;?i++)?{
System.out.println(sResult[i]);
jar包?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Danci {
public static void main(String[] args){
String str = new String();
System.out.print("请输入一个英文句子:");
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//获取键盘输入
str = br.readLine();
}catch(IOException e){
String []s = str.split(" ");//转换成数组
System.out.println("你输入的句子共有单词 "+s.length+" 个");//s.length获取数组长度
//此程序只能获取一句话的单词个数.
以上就是土嘎嘎小编为大家整理的java分词器研究代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!