起初,它看起来很简单。我们可以使用来分割文本String.split(),使用空格来分割单词。但是,如果单词以问号(?)或感叹号(!)结尾,该怎么办?我们可能还需要注意其他一些规则。

使用java.text.BreakIterator使变得更加简单。该类的getWordInstance()工厂方法BreakIterator为单词break创建一个实例。实例化aBreakIterator并传递语言环境信息会使迭代器根据语言环境的规则来中断文本或句子。当我们使用复杂的语言(例如日语或中文)时,这确实很有帮助。

让我们来看一个使用BreakIterator下面的例子。package org.nhooo.example.text;

import java.text.BreakIterator;

import java.util.Locale;

public class BreakIteratorExample {

public static void main(String[] args) {

String data = "The quick brown fox jumps over the lazy dog.";

String search = "dog";

// 获取BreakIterator的实例,以用于

//给定的语言环境。我们可以实例化BreakIterator而无需

//指定语言环境。当我们

// 正在使用日语或中文等语言

// 与英语相比,休息标准可能有所不同。

BreakIterator bi = BreakIterator.getWordInstance(Locale.US);

// 设置要扫描的文本字符串。

bi.setText(data);

// 迭代边界/中断

System.out.println("Iterates each word: ");

int count = 0;

int lastIndex = bi.first();

while (lastIndex != BreakIterator.DONE) {

int firstIndex = lastIndex;

lastIndex = bi.next();

if (lastIndex != BreakIterator.DONE

&& Character.isLetterOrDigit(data.charAt(firstIndex))) {

String word = data.substring(firstIndex, lastIndex);

System.out.printf("'%s' found at (%s, %s)%n", word, firstIndex, lastIndex);

// 计算“狗”一词出现的次数。

if (word.equalsIgnoreCase(search)) {

count++;

}

}

}

System.out.println("Number of word '" + search + "' found = " + count);

}

}

这是程序输出:Iterates each word:

'The' found at (0, 3)

'quick' found at (4, 9)

'brown' found at (10, 15)

'fox' found at (16, 19)

'jumps' found at (20, 25)

'over' found at (26, 30)

'the' found at (31, 34)

'lazy' found at (35, 39)

'dog' found at (40, 43)

Number of word 'dog' found = 1

java将英文句子分解为单词,Java如何将文本或句子分解为单词?相关推荐

  1. java api 英文_教你查阅Java API 英文文档(JDK 11)

    然后找到"Specifications"并点击 API Documentation 比如我们在别人的源码里看到了 方法[也叫函数]:  Scanner input = new Sc ...

  2. 使用Java统计英文文章的单词频率。

    spark中的入门级程序:WordCount.这次不是使用spark来完成的,而是使用原生的Java API.只要英文文章符合书写的规定,那么这个程序就没有什么问题. 先将指定文件中的内容读取到Str ...

  3. 【华为OD机试真题JAVA】英文输入法单词联想功能

    标题:英文输入法单词联想功能| 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 主管期望你来实现英文输入法单词联想功能 需求如下 依据用户输入的单词前缀 从已输入的英文语句中联想出用 ...

  4. java实现英文文件单词搜索系统_Java实现 LeetCode 79 单词搜索

    79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格. ...

  5. java实现英文转摩尔斯电码传输(一)

    java实现英文转摩尔斯电码传输(一) 摩尔斯电码简介: 摩尔斯电码(Morse code)也被称作摩斯密码,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母.数字和标点符号.它发明于 ...

  6. java需要的英语_学Java需要有英文基础么

    相信很多朋友也是有这个疑问,学习Java的话我不会英语究竟能不能学会Java编程,这个今天小编就带大家分析一下,没有英文基础到底能不能学会Java,会英文,有英文基础有什么好处. 首先,你如果不会英文 ...

  7. java字符串逐个分解_改进JAVA字符串分解的方法

    改进JAVA字符串分解的方法 一.概述 大多数Java程序员都曾经使用过java.util.StringTokenizer类.它是一个很方便的字符串分解器,主要用来根据分隔符把字符串分割成标记(Tok ...

  8. 7-33 删除句子中的单词 (8 分)输入n(n<=10)个由若干个单词组成的英文句子(句子的长度不超过100),每个句子以英文的标点“.”结束,每个句子中单词之间由1个空格进行分隔,如果最后一个单

    7-33 删除句子中的单词 (8 分) 输入n(n<=10)个由若干个单词组成的英文句子(句子的长度不超过100),每个句子以英文的标点"."结束,每个句子中单词之间由1个空 ...

  9. 计算机游戏英文文献,JAVA游戏英文文献翻译

    JAVA游戏英文文献翻译 J2ME手机游戏编程 J2ME and Wireless Devices 随着移动电话等无线通讯设备急剧增加和功能逐渐成熟,对运行在这些设备上的应用程序的需求也越来越大.消费 ...

最新文章

  1. FPGA 中 IO 口时序分析(Input Delay /output Delay)
  2. 使用Python在Selenium WebDriver中获取WebElement的HTML源代码
  3. centos mysql 新增用户
  4. Java 集合系列(一)
  5. 1.Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server(tomcat突然用不了)...
  6. Python风格总结:列表List
  7. Spring Cache 介绍
  8. 单源点最短路径(Bellman-Ford)原理及js实现
  9. Grails 基础环境搭建及HelloWorld
  10. cad计算机土方软件,飞时达土方计算软件FastTFT
  11. 【J2ME笔记】关于J2ME Image图片指定颜色透明化
  12. struts2通配符的使用
  13. 家里两个路由器,Wifi名相同密码相同,请问手机会自动选择信号强的路由器连接吗?
  14. 解除同居关系时共同财产的分割
  15. Android 11.0 Camera2 默认选择拍照尺寸修改及流程分析
  16. 华为防火墙的策略路由
  17. CBitmap Detach DeleteObject关系
  18. Android 7.1.2 默认输入法的设置流程分析与修改
  19. postgresql启动1053错误
  20. Python基础之线程(Thread)

热门文章

  1. erp电子会签系统-电子签署系统
  2. 用300万考研党的数据告诉你:为什么我们要拼命考研?
  3. 1.前端HTML开发规范
  4. 互联网日报 | 1/18 星期三 | 网易否决暴雪顺延六个月提案;腾讯回应退租朗科办公楼;苹果发布新款MacBook Pro...
  5. 亲身经历,辞掉程序员的工作后,我在家全职接单一个月……
  6. Python爬虫学习笔记总结(一)
  7. 浅谈一年多的网络安全学习经历
  8. “间或一轮”——匆忙走过时的一瞥!
  9. Word使用技巧记录
  10. uniapp 使用editor编辑器实现 发布文章的功能