java.util.Arraysクラスのバイナリ検索(大文字と小文字を区別しない)を使用しようとしていますが、指定された配列。以下は java Arrays.binarySearch()は大文字小文字を区別しない検索で文字列を見つけることができません
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 >= 0)
System.out.println("Found: " + arr[index]);
else
System.out.println("Not Found");
}
}
は、検索文字列の異なる値に基づいて出力されます:以下 はプログラムです
- するsearchString = "UTC" 出力が見つからない= --->
- するsearchString = " america/los_angeles "---> output = Found:America/Los_Angeles
binarySearchパラメータからString.CASE_INSENSITIVE_ORDERパラメータを削除すると、UT Cも見つかる。 私はここで何が欠けていますか?私はこの配列上で大文字と小文字を区別しない検索を行う必要があります。
ありがとうございました!私のマシン上で
'TimeZone.getAvailableIDs'の値の順序は、大文字と小文字が区別されるので、大文字と小文字は区別されません。 –