मुझे https://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensitive/ से संबंधित एक कोलेटर बनाने की आवश्यकता है यानी यह तुलना करते समय ASCII A-Z
और a-z
वर्णों की केस संवेदनशीलता को अनदेखा करता है।एचटीएमएल ASCII केस असंवेदनशील आईसीयू कोलेटर
मैं निम्नलिखित ICU4j RuleBasedCollator
के साथ इस प्रयास किया है:
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, v=V, w=W, x=X, y=Y, z=Z").freeze();
हालांकि, निम्नलिखित तुलना विफल है, जहां मैं इसे सफल होने के लिए उम्मीद करेंगे (यानी लौट true
) लगता है:
final SearchIterator searchIterator = new StringSearch(
"pu", new StringCharacterIterator("iNPut"), collator);
return searchIterator.first() >= 0;
मेरे नियमों में मुझे क्या याद आ रही है?
हम्म कि दिलचस्प है। मुझे आश्चर्य है कि नियम असमान हैं? जैसे दोनों दिशाओं में तुलना करने के लिए, क्या मुझे '" और पी = पी, पी = पी "को परिभाषित करने की आवश्यकता होगी? – adamretter
बराबर चिह्न दोनों तरीकों से काम करता है इसलिए नियम भी होना चाहिए, हां? – ParallelNoob
[आईसीयू कॉललेटर अनुकूलन उपयोगकर्ता मार्गदर्शिका] से (http://userguide.icu-project.org/collation/customization): x = y, "x" और "y" के बीच कोई अंतर नहीं दर्शाता है। – ParallelNoob