title: Java case insensitive localized ordering
body: <p>I have set of hyphenated string sets. That I want to sort considering the locale.</p>
  
  <pre><code>List&lt;String&gt; words = Arrays.asList("App - Small", "Apple", "App - Big");
  
  Collator collator = Collator.getInstance(new Locale("en"));
  
  // Sort Method 1            
  Collections.sort(words, String.CASE_INSENSITIVE_ORDER);
  System.out.println(words.toString());
  
  // Sort Method 2        
  collator.setStrength(Collator.PRIMARY);
  Collections.sort(words, collator);
  System.out.println(words.toString());
  </code></pre>
  
  <h2>Result</h2>
  
  <pre><code>String.CASE_INSENSITIVE_ORDER
  
  [App - Big, App - Small, Apple]  
  
  Collator.PRIMARY
  
  [App - Big, Apple, App - Small]
  </code></pre>
  
  <p>Though the Collator.PRIMARY is supposed to do a case-insensitive sorting there is difference between the order using the above two methods. How can I achieve locale based case-insensitive sort order that works with hyphen. </p>
  
  <p>[App - Big, App - Small, Apple] - Expected sort order</p>