草庐IT

collation

全部标签

java - 对于给定的语言环境,整理器排序不正确

这是语言环境字母顺序:wikipedia这是我的代码:publicstaticvoidmain(String[]args){Localeloc=newLocale("sr","RS");Collatorcol=Collator.getInstance(loc);col.setStrength(Collator.SECONDARY);Listslova=newArrayList();slova.add("Austrija");slova.add("Slovačka");slova.add("Č");slova.add("Đ");slova.add("C");slova.add("Grčk

java - 结合字母顺序和自然顺序(又名。用户理智排序)

我认为这很容易找到预制的,但似乎我在网上找到的任何解决方案都只能解决部分问题。我想对用户提供的文件名列表进行排序(这些文件大多以人和/或地址命名),有时使用不同的语言(主要是德语,带有一些法语和意大利语在这里和那里混合,很少有任何其他西方语言)。这个想法是以(德国)用户通常认为理智的方式呈现这个列表。这意味着顺序应遵循locale.GERMAN的java.text.Collat​​or,但同时期望对字符串中的数字进行异常(exception)处理,因此“10”出现在“2”之后".我找到了在网络上进行自然排序的代码,但它依赖于逐字符比较(而Collat​​or不支持)。我可以用子字符串破

Java Unicode 字符串排序

在Java中,如何比较Unicode字符串?我的意思是,如果我有一些日语字符串,当我执行以下操作时:java.util.Arrays.sort(arrayOfJapaneseStrings);这些字符串是如何进行比较和排序的? 最佳答案 默认情况下,字符串按Unicode顺序按字典顺序排序。该顺序是按UTF-16编码的,因此某些字符可能不是您想要的,但日文字符都在BMP中。,所以你不应该有这些问题。如果您想要不同的排序顺序,可以使用java.text.Collat​​or类来定义不同的排序顺序。

java - 字符串的自定义排序列表(遵循查莫罗语排序规则)

我正在尝试对太平洋岛屿语言(查莫罗语)的字符串列表进行排序。在这种语言中,Ng被认为是一个字母,它在字母表中位于N之后。如何对单词列表进行排序,使Nai和Nunu都出现在以Ng开头的单词之前?更新完整的字母表是:A,Å,B,Ch,D,E,F,G,H,I,K,L,M,N,Ñ,Ng,O,P,R,S,T,U,Y除了Å、Ñ和它们的小写版本外,其他字母没有重音符号。单词中可以包含撇号(例如o'mak),但它们不会影响排序顺序。Chamorro没有语言环境,所以我需要手动实现排序算法。 最佳答案 感谢DirkLachowski,我实现了一个有效

java - HTML ASCII 不区分大小写的 ICU 整理器

我需要创建一个对应于https://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensitive/的Collat​​or即在进行比较时忽略ASCIIA-Z和a-z字符的大小写敏感性。我尝试使用以下ICU4jRuleBasedCollat​​or:finalRuleBasedCollatorcollator=newRuleBasedCollator("&a=A,b=B,c=C,d=D,e=E,f=F,g=G,h=H,"+"i=I,j=J,k=K,l=L,m=M,n=N,o=O,p=P,q=Q,r=R,s=S,t

Java:使用 Collat​​orKey 对集合进行排序

我想实现的是按字符串值对对象集合进行排序。但是,以依赖于语言环境的方式使用整理器。由于性能原因,我不想使用Collat​​orcompare()方法(如下面的代码),而是使用Collat​​ionKey类,因为javaAPI声明使用Collat​​ionKey更快。但是如何使用Collat​​ionKey实现compareTo()方法呢?据我了解,如果我要使用Collat​​ionKey,我必须自己完全编写所有比较方法。所以我什至无法再使用Collections.sort()方法...我非常感谢一个易于理解的示例和使用Collat​​ionKey对Person对象的Collection

java - 使用 Java Collat​​or 区分大小写的顺序

我正在尝试使用JavaCollator了解区分大小写的顺序应该如何真正起作用.在thisexample以下字符串在法语语言环境中使用所有优势进行排序(出于说明目的,我在数据集中添加了一些额外的字符串):[Äbc,äbc,Àbc,àbc,Abc,abc,ABC]-OriginalData[Äbc,äbc,Àbc,àbc,Abc,abc,ABC]Primary[Abc,abc,ABC,Àbc,àbc,Äbc,äbc]Secondary[abc,Abc,ABC,àbc,Àbc,äbc,Äbc]TertiaryCasekicksinonlywithTertiaryCollationStreng

java.text.Collat​​or 将 "v"和 "w"视为瑞典语/区域设置的相同字母

以下测试在Java8中正确通过。ComparatorstringComparator=Collator.getInstance(newLocale("sv","SE"));Assert.assertTrue(stringComparator.compare("aaaa","bbbb")这在vbbb之前命令waaa,在wbbb之前命令vaaa。显然它将v和w视为同一个字母。事实上,根据维基百科,瑞典语:By2006,'W'hadgrowninusagebecauseofnewloanwords,so'W'officiallybecamealetter,andthe'V'='W'sorti

java - 使用排序规则对马其顿字母表进行排序

我正在尝试对一组用马其顿字母书写的字符串进行排序。我知道该怎么做,但最终结果不是我所期望的。这是我的测试程序:publicclassMain{privatestaticfinalchar[]ALPHABET_ARRAY={'а','б','в','г','д','ѓ','е','ж','з','ѕ','и','ј','к','л','љ','м','н','њ','о','п','р','с','т','ќ','у','ф','х','ц','ч','џ','ш'};publicstaticvoidmain(String[]args){Collatorcollator=Collator

MySQL提示Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT)

根据错误提示,报错原因应该是=号两侧内容的排序规则(collation)不一致导致的报错。原sql中出现了:status !='取消'原因是:表字段的排序规则为utf8mb4_0900_ai_ci,而字面常量是排序规则是utf8mb4_general_ci collation_connection用于字面常量比较,如果字段比较会使用字段或表声明的排序规则,这个属性不起作用使用以下sql查询:showvariableswhereVariable_namelike'collation%';问题解决设置collation_connection属性:setcollation_connection=ut