Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.

Collator Class

Contains methods to get locale-specific instances that can be used for comparisons and sorting. Use the getInstance() method to obtain the Collator instance for a given locale and pass the Collator as the Comparator parameter to the list.sort() method.

Namespace

System

Usage

Because locale-sensitive sorting can produce different results depending on the user running the code, avoid using it in triggers or in code that expects a particular sort order.

Example

This example performs a default list sort and then uses Collator to sort based on the user locale.

1@IsTest
2    static void userLocaleSort() {
3        
4        string userLocale = 'fr_FR';
5        
6        User u = new User(Alias = 'standt', Email='standarduser@testorg.com',
7        EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US',
8        LocaleSidKey=userLocale, TimeZoneSidKey='America/Los_Angeles',
9        ProfileId = [SELECT Id FROM Profile WHERE Name='Standard User'].Id,
10        UserName='standarduser' + DateTime.now().getTime() + '@testorg.com');
11       
12        System.runAs(u) {
13           
14            List<String> shoppingList = new List<String> {
15                'épaule désosé Agneau',
16                'Juice',
17                'à la mélasse Galette 5 kg',
18                'Bread',
19                'Grocery'
20            };
21            
22            // Default sort
23            shoppingList.sort();
24            Assert.areEqual('Bread', shoppingList[0]);
25            
26            // Sort based on user Locale
27            Collator myCollator = Collator.getInstance();
28            shoppingList.sort(myCollator);
29            Assert.areEqual('à la mélasse Galette 5 kg', shoppingList[0]);
30            Assert.areEqual('Bread', shoppingList[1]);
31            Assert.areEqual('épaule désosé Agneau', shoppingList[2]);
32            Assert.areEqual('Grocery', shoppingList[3]);
33            Assert.areEqual('Juice', shoppingList[4]);
34        }
35    }

Collator Methods

The following are methods for Collator.

compare(source, target)

Perform string comparisons for a given locale.

Signature

public Integer compare(String source, String target)

Parameters

Return Value

Type: Integer

getInstance()

Gets the Collator instance for the current user’s locale.

Signature

public static System.Collator getInstance()

Return Value

Type: Collator Class