加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – HTML ASCII Case不敏感的ICU Collat??or

发布时间:2020-12-15 02:59:46 所属栏目:Java 来源:网络整理
导读:我需要创建一个对应于 https://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensitive/的Collat??or,即在进行比较时忽略ASCII A-Z和a-z字符的区分大小写. 我用以下ICU4j RuleBasedCollat??or尝试了这个: final RuleBasedCollator collato
我需要创建一个对应于 https://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensitive/的Collat??or,即在进行比较时忽略ASCII A-Z和a-z字符的区分大小写.

我用以下ICU4j RuleBasedCollat??or尝试了这个:

final RuleBasedCollator collator =
        new RuleBasedCollator("&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=T,"
                + "u=U,v=V,u=U,w=W,x=X,y=Y,z=Z").freeze();

但是,以下比较似乎失败了,我希望它能成功(即返回true):

final SearchIterator searchIterator = new StringSearch(
        "pu",new StringCharacterIterator("iNPut"),collator);
return searchIterator.first() >= 0;

我的规则中缺少什么?

解决方法

>这个W3C“整理”看起来不像通常意义上的Collat??or.它是一个没有排序的ASCII不区分大小写的匹配器.我怀疑它通常是用低级代码实现的,它不区分大小写地匹配ASCII字母,而其他所有字符都精确匹配.见 https://www.w3.org/TR/xpath-functions-31/#html-ascii-case-insensitive-collation
> Collat??or规则可能不会按照您的想法执行.逗号是用于三次差异的旧语法,因此& a = A,b = B,c = C与& a = A<<<<<<<<<<<<<<<> c = C.我认为你打算像& a = A& b = B& c = C等.

> http://userguide.icu-project.org/collation/customization
> http://demo.icu-project.org/icu-bin/collation.html
> http://www.unicode.org/reports/tr35/tr35-collation.html#Rules

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读