11.5---含有空字符串的字符串查找(CC150)

时间:2023-03-09 12:53:31
11.5---含有空字符串的字符串查找(CC150)

注意,1,"" 和 " "。是不同的,空字符串指的是"";

2,注意String的compareTo。小于是指<0.并不是==-1;

仔细观察代码中注释掉的那一行错在哪里。

import java.util.*;

public class Finder {
public static int findString(String[] a,int n, String key){
int left = 0;
int right = a.length - 1;
while(left <= right){
int mid = (left + right) / 2; while(mid < right && a[mid] == "" ){
mid++;
}
while(mid > left && a[mid] == "") {
mid--;
} if(key.equals(a[mid])) return mid; //else if(key.compareTo(a[mid]) == -1){
else if(key.compareTo(a[mid]) < 0){
right = mid -1;
}
else {
left = mid + 1;
}
} return -1;
}
}