首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java的BreakIterator的C#等效项

Java的BreakIterator的C#等效项
EN

Stack Overflow用户
提问于 2017-05-29 21:46:31
回答 1查看 301关注 0票数 4

我正在做一个从java到c#的转换项目,有没有BreakIterator版的c#版?我一直在尝试IEnumerator,但在下面找不到iterator.SetText()的用法,有没有人能为下面的几行建议等效的C#代码:

代码语言:javascript
复制
String finalResult=""
ArrayList<String> resultList = new ArrayList<String>();
BreakIterator iterator = BreakIterator.getSentenceInstance(currentLocale);
//int counter = 0;
iterator.setText(finalResult);
int lastIndex = iterator.first();
while (lastIndex != BreakIterator.DONE) 
{
int firstIndex = lastIndex;
lastIndex = iterator.next();
if (lastIndex != BreakIterator.DONE) 
{
    String sentence = finalResult.substring(firstIndex, lastIndex);
    resultList.add(sentence);
    System.out.println("sentence = " + sentence);
    //counter++;
}
}
EN

回答 1

Stack Overflow用户

发布于 2020-03-13 07:25:34

BreakIterator是一种支持对Unicode文本的任意字符串进行区域识别边界分析的机制。我怀疑Java类在很大程度上是基于(甚至可能直接依赖于,但我在猜测) ICU (国际统一码组件)项目:http://site.icu-project.org/

引用ICU docs

文本边界分析是在格式化和处理文本时定位语言边界的过程。此过程的示例包括:

当显示或删除( printing.

  • Locating )用户具有selected.

  • Counting字符,单词,句子,或者当用户点击箭头键时文本光标移动多远(有些字符需要文本存储中的多个位置,而文本存储中的某些字符根本不显示)。如果给定的文本范围仅包含整个文本,则将document.

  • Figuring中的唯一单词列表输出。

将每个单词的第一个字母作为文本的一个特定单元(例如,查找文档中的第三个单词)。

ICU提供了C语言绑定,名为ICU4C。ICU FAQ描述了ICU4C:

C和C++语言以及许多操作系统环境并不完全支持Unicode和符合标准的文本处理服务。尽管有些平台确实提供了很好的Unicode文本处理服务,但可移植的应用程序代码无法利用它们。ICU4C库填补了这一空白。ICU4C为应用程序提供了一个开放、灵活、可移植的基础,以满足其软件全球化需求。ICU4C密切跟踪行业标准,包括Unicode和CLDR (通用区域数据存储库)。

SIL International通过一个名为icu-dotnet的项目提供了C#语言绑定,允许您在C#应用程序中使用ICU4C。

你可以在Github上找到官方的icu-dotnet存储库:

https://github.com/sillsdev/icu-dotnet

或者,通过Nuget安装它:

https://www.nuget.org/packages/icu.net/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44244081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档