十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
现可以提供两种思路:
站在用户的角度思考问题,与客户深入沟通,找到仙桃网站设计与仙桃网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、主机域名、雅安服务器托管、企业邮箱。业务覆盖仙桃地区。
1.String或是StringBuffer(建议用) 中的indexOf("中华")方法,查找给定的的字符串中是否有给定词表中的词。
2.借鉴编译原理中的状态装换的思想。
先编写一个状态机,用于测试给定字符串中的词是否满足词表中的内容。
写在最后:1)建议使用第一种方法,因为在java 内部实现的查找操作其实 和你想得思路是相同的,不过他的效率会高些。
2)如果个人的编程能力比较强或是不考虑效率只是想实现专有的分词算法。可以使用第二种方法。
3)以上的两种方法都可以使用多线程来提高程序的效率。
2.程序代码
用Ansj进行中文分词的简单代码如下所示:
[java] view plain copy
import org.ansj.splitWord.analysis.ToAnalysis;
public class SplitWordsByAnsj {
public static void main(String[] args) {
String words = "中国是世界四大文明古国之一,有着悠久的历史,距今约5000年前,以中原地区为中心开始出现聚落组织进而成国家和朝代,后历经多次演变和朝代更迭,持续时间较长的朝代有夏、商、周、汉、晋、唐、宋、元、明、清等。中原王朝历史上不断与北方游牧民族交往、征战,众多民族融合成为中华民族。20世纪初辛亥革命后,中国的君主政体退出历史舞台,取而代之的是共和政体。1949年中华人民共和国成立后,在中国大陆建立了人民代表大会制度的政体。中国有着多彩的民俗文化,传统艺术形式有诗词、戏曲、书法和国画等,春节、元宵、清明、端午、中秋、重阳等是中国重要的传统节日。";
System.out.println(ToAnalysis.parse(words));
}
}
3.分词结果
例子中对那一段中文的分词结果如下所示:
[plain] view plain copy
[中国, 是, 世界, 四, 大, 文明, 古, 国, 之一, ,, 有着, 悠久, 的, 历史, ,, 距, 今, 约, 5000, 年前, ,, 以, 中原, 地区, 为, 中心, 开始, 出现, 聚落, 组织, 进而, 成, 国家, 和, 朝代, ,, 后, 历经, 多次, 演变, 和, 朝代, 更迭, ,, 持续, 时间, 较, 长, 的, 朝代, 有, 夏, 、, 商, 、, 周, 、, 汉, 、, 晋, 、, 唐, 、, 宋, 、, 元, 、, 明, 、, 清, 等, 。, 中原, 王朝, 历史, 上, 不断, 与, 北方, 游牧, 民族, 交往, 、, 征战, ,, 众多, 民族, 融合, 成为, 中华民族, 。, 20, 世纪, 初, 辛亥革命, 后, ,, 中国, 的, 君主, 政体, 退出, 历史, 舞台, ,, 取而代之, 的, 是, 共和, 政体, 。, 1949年, 中华人民共和国, 成立, 后, ,, 在, 中国, 大陆, 建立, 了, 人民, 代表大会, 制度, 的, 政体, 。, 中国, 有着, 多, 彩, 的, 民俗, 文化, ,, 传统, 艺术, 形式, 有, 诗词, 、, 戏曲, 、, 书法, 和, 国画, 等, ,, 春节, 、, 元宵, 、, 清明, 、, 端午, 、, 中秋, 、, 重阳, 等, 是, 中国, 重要, 的, 传统, 节日, 。]
如果你的分词规则是在一个字符串的开头和结尾加上"_",然后两个字符一分的话,代码可以这样写:
import java.util.ArrayList;
import java.util.List;
public class Participle
{
private static final String HEAD_END_STR = "_";
private static final int PARTICIPLE_LENGTH = 2;
public static void main(String[] args)
{
String exampleWord = "计算机";
exampleWord = "_" + exampleWord + "_";
int length = exampleWord.length();
ListString result = new ArrayListString();
for (int i = 0; i length - 1; i++)
{
String str = exampleWord.substring(i, i + PARTICIPLE_LENGTH);
result.add(str);
}
System.out.println(result);
}
}
输出结果:_计, 计算, 算机, 机_
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){
e.printStackTrace();
}
String []s = str.split(" ");//转换成数组
System.out.println("你输入的句子共有单词 "+s.length+" 个");//s.length获取数组长度
}
}
//此程序只能获取一句话的单词个数.