Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

XeroxBoy/DesignPattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

14 Commits

Repository files navigation

文本处理器

文本处理是非常常见但又非常重要的任务。其中操作纷繁复杂。而今天我们的目标就是制作一个 小型的文本预处理器。其主要功能就是对文本进行预处理以便后续进行固定宽度的排版。为了方 便说明,我们定义如下的概念:

空白字符(white space):指空格。

文本字符(character):指大写或者小写的英文字母。

节(segment):指一串(大于或者等于一个)连续的空白字符或者文本字符。 我们的文本处理器的功能还很朴素,无法处理除 空白字符文本字符 之外的字符。

我们将会使用一个固定长度作为宽度进行排版。大于这个宽度的字符会被折行。而折行不会显示 任何连字符(例如 "-"),也无需对 空白字符 进行额外处理。例如,假设我们规定最大宽度为30, 则 "The main theme of education in engineering school is learning to teach yourself" 将排版为:

The main theme of education in engineering school is learnin g to teach yourself

要求

现在请书写一个函数,该函数的输入为两个参数:

需要处理的文本

排版宽度。

该函数的返回值为预处理后的文本。预处理后的文本为每一节,及其所在的行号。中间以分号隔 开。若一个节跨越了多行,则行号用逗号隔开,并从小到大进行排列。

思路

创造了一个内部类:节(Segment,如上上节描述所述) 用于记录每一节的文本,开始与结束的索引位置(用于计算行号) 先对文本进行检错处理。若无错误则从文本头开始遍历 将每一节放入Segment数组中。再遍历segment数组利用开始与结束的索引位置和排版宽度计算出行号 实现文本处理结果的显示

构建与运行

本项目使用JAVA语言在IDEA中开发 有一个主类TextProcessor和junit测试类TextProcessorTest 运行时使用IDEA导入该项目 并运行TextProcessorTest 中的测试方法(testTextProcess1-3)即可 Image discription Image discription Image discription

About

homework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /