Извините, если это повторение, но я искал ответ на этот вопрос, но я нигде не могу его найти, и мой последний вопрос касался того же кода, но с другой проблемой.
Мне нужно найти строку внутри массива, но все строки в массиве имеют длину 16 символов, а ключ поиска не будет 16 символов при вводе пользователем.До сих пор каждая попытка, которую я предпринял, заканчивалась тем, что строка не была найдена, хотя я знаю, что она находится в массиве.Я думаю, что это как-то связано с конечными пробелами после фактического строкового текста в массиве, но я не уверен, как с этим справиться.
Это мое поисковое заявление.Я отмечу, что мой оператор compareTo () сравнивает this.name с other.name, так что я совершенно сбит с толку .:
case 'b':
System.out.println();
System.out.println("Please enter a customer name:");
String search = kb.nextLine(); //read the user's search
int place; //location of result
Arrays.sort(A);
Customer searchCust = new Customer(search);
place = Arrays.binarySearch(A,searchCust);
if (place <= 0)
System.out.println("Cannot find customer named " + search);
else
{
System.out.println("Customer found:");
System.out.println(A[place-1]);
break;
public int compareTo(Customer a)
{
return this.name.compareTo(a.name);
} //end compareTo