Java 是否有一种方法可以获得与区域设置中给定字符等效的所有字符

Java 是否有一种方法可以获得与区域设置中给定字符等效的所有字符,java,regex,unicode,locale,icu,Java,Regex,Unicode,Locale,Icu,我正在研究java的icu包。我所寻找的是一种传递给定区域设置和给定代码点并获得“等效”字符列表的方法 我在看法语中[=e=]的POSIX charclass,法语中与“e”等价的所有字符是什么?e、 è,è和è 我看了看每个人似乎都在使用的icu软件包,没有找到一种方法来做到这一点 注意:这似乎与另一个问题相反 Andy这取决于你所说的等价物是什么意思,但你可以使用a来查看哪些字符将被排序在一起。您可以从区域设置获取默认的拼贴符: Collator.getInstance(Locale.FRA

我正在研究java的icu包。我所寻找的是一种传递给定区域设置和给定代码点并获得“等效”字符列表的方法

我在看法语中[=e=]的POSIX charclass,法语中与“e”等价的所有字符是什么?e、 è,è和è

我看了看每个人似乎都在使用的icu软件包,没有找到一种方法来做到这一点

注意:这似乎与另一个问题相反


Andy

这取决于你所说的等价物是什么意思,但你可以使用a来查看哪些字符将被排序在一起。您可以从
区域设置
获取默认的拼贴符:

Collator.getInstance(Locale.FRANCE);
将其强制转换为允许您执行以下操作:

((RuleBasedCollator)Collator.getInstance(Locale.FRANCE)).getRules();

这将向您显示等价表。

这实际上可能是您想要的:

java.text.Normalizer可以将代码点分解为几个,例如
e'
,可能(不确定)
oe
。这是否意味着“等价物”?法语中“e”的等价物将是法语中所有形式的e字符。有趣的问题-你打算对结果做什么?另外,仅仅寻找所有可能的字符也不起作用,因为在一些collator中,例如“Å”=“AA”。我正在为java编写一个正则表达式引擎,它提供正则表达式中指令暗示的主要功能(ala Perl)。但是,这是一个很好的方法,可以为语言环境中所有等价的“e”和“a”变体提供匹配(例如[=ea=])的charclass。参见我的其他评论,我认为这个答案是Java 6和Java 7的最佳选择。我会看看是否有类似的icu。icu有相同的接口可用。有趣的类,但是OP正在寻找一个表示
e
等同于
e
的东西。如果您希望看到
e
+
'
等同于
é
True,则可以使用该类。看起来此类不区分区域设置。