LINUX.ORG.RU

История изменений

Исправление vtVitus, (текущая версия) :

http://stackoverflow.com/questions/8389922/where-can-i-find-a-specific-set-of...

Эти строки ровны только в определённых локалях (в датском например не равны) в других могут быть равны

{
            Locale uiLocale = Locale.forLanguageTag("da-DK");

            // Setting up collator object
            Collator collator = Collator.getInstance(uiLocale);
            collator.setStrength(Collator.SECONDARY);
            collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
            // strings for equality testing
            String test1 = "USA lover Grækenland støtte";
            String test2 = "USA lover graekenland støtte";
            boolean result = collator.equals(test1, test2);
            System.out.println("" + result);
        }
        {
            Locale uiLocale = Locale.forLanguageTag("en-US");

            // Setting up collator object
            Collator collator = Collator.getInstance(uiLocale);
            collator.setStrength(Collator.SECONDARY);
            collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
            // strings for equality testing
            String test1 = "USA lover Grækenland støtte";
            String test2 = "USA lover graekenland støtte";
            boolean result = collator.equals(test1, test2);
            System.out.println("" + result);
        }
false
true

Исправление vtVitus, :

Эти строки ровны только в определённых локалях (в датском например не равны) в других могут быть равны

{
            Locale uiLocale = Locale.forLanguageTag("da-DK");

            // Setting up collator object
            Collator collator = Collator.getInstance(uiLocale);
            collator.setStrength(Collator.SECONDARY);
            collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
            // strings for equality testing
            String test1 = "USA lover Grækenland støtte";
            String test2 = "USA lover graekenland støtte";
            boolean result = collator.equals(test1, test2);
            System.out.println("" + result);
        }
        {
            Locale uiLocale = Locale.forLanguageTag("en-US");

            // Setting up collator object
            Collator collator = Collator.getInstance(uiLocale);
            collator.setStrength(Collator.SECONDARY);
            collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
            // strings for equality testing
            String test1 = "USA lover Grækenland støtte";
            String test2 = "USA lover graekenland støtte";
            boolean result = collator.equals(test1, test2);
            System.out.println("" + result);
        }
false
true

Исправление vtVitus, :

Эти строки ровны только в определённых локалях (в датском например не равны) в остальных не равны.

{
            Locale uiLocale = Locale.forLanguageTag("da-DK");

            // Setting up collator object
            Collator collator = Collator.getInstance(uiLocale);
            collator.setStrength(Collator.SECONDARY);
            collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
            // strings for equality testing
            String test1 = "USA lover Grækenland støtte";
            String test2 = "USA lover graekenland støtte";
            boolean result = collator.equals(test1, test2);
            System.out.println("" + result);
        }
        {
            Locale uiLocale = Locale.forLanguageTag("en-US");

            // Setting up collator object
            Collator collator = Collator.getInstance(uiLocale);
            collator.setStrength(Collator.SECONDARY);
            collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
            // strings for equality testing
            String test1 = "USA lover Grækenland støtte";
            String test2 = "USA lover graekenland støtte";
            boolean result = collator.equals(test1, test2);
            System.out.println("" + result);
        }

false
true
{/code]

Исправление vtVitus, :

Эти строки ровны только в определённых локалях (в датском например) в остальных не равны.

Locale uiLocale = Locale.forLanguageTag("en-US");
        // Setting up collator object
        Collator collator = Collator.getInstance(uiLocale);
        collator.setStrength(Collator.SECONDARY);
        collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
        // strings for equality testing
        String test1 = "USA lover Grækenland støtte";
        String test2 = "USA lover graekenland støtte";
        boolean result = collator.equals(test1, test2);
        System.out.println("" + result);

Исходная версия vtVitus, :

Эти строки ровны только в определённых локалях (в датском например) в остальных не равны. Java такого не умеет, но можно научить через RuleBasedCollator https://www.cis.upenn.edu/~bcpierce/courses/629/jdkdocs/api/java.text.RuleBas...