gpt4 book ai didi

java - 使用数组时的 binarySearch

转载 作者:行者123 更新时间:2023-12-02 11:08:21 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do I compare strings in Java?

(23 个回答)


5年前关闭。




我是 java 的新程序员,我正在尝试使用 binarySearch 在捕获 3 个状态名称的数组中查找特定状态名称。在这种情况下,我选择了德州。代码中的其他所有内容都在 binarySearch 之前出现“找不到符号 TEXAS”的编译器错误。有人可以告诉我我做错了什么吗?

import java.util.Scanner;
import java.util.Arrays;

public class OrozcoBLE64 {
private static Scanner input = new Scanner(System.in);

public static void main(String[] args) {
String[] stateNameArray = new String[3];
String[] stateNameArrayCopy = new String[stateNameArray.length];

for (int counter = 0; counter < 3; counter++) {

System.out.printf("Enter the name for state %d:\n ", counter + 1);
stateNameArray[counter] = input.nextLine().toUpperCase();

System.arraycopy(stateNameArray, 0, stateNameArrayCopy, 0, stateNameArray.length);
} // end of for loop

boolean copyEquals = Arrays.equals(stateNameArray, stateNameArrayCopy);
System.out.printf("stateNameArray %s stateNameArrayCopy\n\n",
(copyEquals ? "equals" : "does not equal")); //displays if arrays are equal after copy.

Arrays.sort(stateNameArray);
System.out.printf("The statesNameArray has been sorted\n");

boolean sortEquals = Arrays.equals(stateNameArray, stateNameArrayCopy);
System.out.printf("stateNameArray %s stateNameArrayCopy\n\n",
(sortEquals ? "equals" : "does not equal"));

String state = Arrays.binarySearch(stateNameArray, TEXAS);

if (state == TEXAS) {
System.out.printf("Found TEXAS at element %d in statesNameArray\n", state);
}
} // end of main method
} // end of class

最佳答案

您应该使用字符串 API equals()不是 '==' 用于字符串比较。

关于java - 使用数组时的 binarySearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643513/

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