请在以下方面提供您的帮助:

如何检测令牌中的重复字符,例如:

如果我有这句话:
كييييفنستطيعالتوااصلمعالطلاب?

我想要一个Java代码,该代码可检测包含重复字符的每个单词,然后删除它们(重复字符)并更新单词。

因此,我们的句子应为:
كيفنستطيعالتواصلمعالطلاب?

请注意,单词“كييييف”包含重复的字符“ي”,应将其更新为仅“كيف”,“التوااصل”变为“التواصل”。

我感谢您的帮助。

最佳答案

洛琳娜(Lolina),循环并没有太大帮助。您是否听说过正则表达式。 Java使用它们与Perl和Python等许多其他语言一样。我熟悉Python,但是regex在所有语言中几乎都具有类似的功能。

您现在需要的是阅读Java中的正则表达式,尤其是阅读分别匹配0个或多个和1个或多个字符的元字符*和+。

首先尝试编译简单的正则表达式,然后向其添加其他内容,以便它们执行您实际想要执行的操作。

最后,正则表达式在开始时有点让人困惑,但是值得一试。请记住,斯坦福阿拉伯语POS标记器使用正则表达式来执行与您尝试执行的操作类似的操作。

我对Java一点都不熟悉,但是在Python中,我可以这样做:

>>> import re
>>> p = re.compile('ي+') # The + sign means match at least more than one occurrence of ي
>>> p.sub('ي', 'كييييييييف نتواصل مع الطلاب')
'كيف نتواصل مع الطلاب'


通常使用阿拉伯语,我们会重复键入以下三个字母ا,ي和و。这些是阿拉伯语的元音。您可以为ي编译一个正则表达式并将其剥离。然后为ا编译另一个,为و编译另一个。

我希望这能帮到您!

关于java - 检测阿拉伯语标记中的重复字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23289216/

10-12 22:28
查看更多