title: java Arrays.binarySearch() not able to find string in case insensitive search
body: <p>I am trying to use the binary search (case insensitive) of java.util.Arrays class but it is not able to search a String which exists in the array specified.
  Below is the program :</p>
  
  <pre><code>package com.test;
  
  import java.util.Arrays;
  import java.util.TimeZone;
  
  public class TestArrayBinSearch {
  
      public static void main(String[] args) {
  
          String arr[] = TimeZone.getAvailableIDs();
          Arrays.sort(arr);
          String searchString = "UTC";
  
          int index = Arrays.binarySearch(arr, searchString, String.CASE_INSENSITIVE_ORDER);
          if(index &gt;= 0)
             System.out.println("Found: " + arr[index]);
          else 
              System.out.println("Not Found");
      }
  }
  </code></pre>
  
  <p>Below is the output based on different values of search strings:</p>
  
  <ul>
  <li>searchString = "UTC"  ---> output = Not Found</li>
  <li>searchString = "america/los_angeles"  ---> output = Found: America/Los_Angeles</li>
  </ul>
  
  <p>If I remove the String.CASE_INSENSITIVE_ORDER parameter from the binarySearch parameters then UTC is also found. 
  What am I missing here ? I need to do a case insensitive search over this array.</p>
  
  <p>Thanks in Advance !</p>