gpt4 book ai didi

java - 在数组中搜索字符串

转载 作者:行者123 更新时间:2023-11-30 05:05:40 25 4
gpt4 key购买 nike

很抱歉,如果这是重复的,但我一直在寻找这个问题的答案,但我在任何地方都找不到答案,我的最后一个问题是针对相同的代码但有不同的问题。

我需要在数组中查找一个字符串,但是数组中的所有字符串都是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

最佳答案

编辑:澄清问题后。

所以,问题是您的用户正在输入类似

"Smith"
的内容但您的数组元素始终填充为 16 个字符长,并且搜索词可能位于中间某处,例如
"John Smith      "
那么我建议只循环遍历数组并对每个元素执行 .contains()

二分搜索是一种优化,只有在性能出现问题时我才会考虑它,因为它会带来很多复杂性。

关于java - 在数组中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5173065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com