我試圖使用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」 --->輸出=未找到
- 搜索字符串=「美國/洛杉磯「---> output = Found:America/Los_Angeles
如果我從binarySearch參數中刪除String.CASE_INSENSITIVE_ORDER參數,則UT C也被發現。 我在這裏錯過了什麼?我需要對這個數組進行不區分大小寫的搜索。
在此先感謝!
「TimeZone.getAvailableIDs」中的值的大小順序可能區分大小寫,而不是大小寫不敏感的順序,所以它不能以這種方式找到它。 –