【发布时间】:2019-12-19 21:28:04
【问题描述】:
我必须从用户输入的数组中搜索一个字符串,但我的逻辑有错误。即使用户输入在数组中,我仍然会得到“找不到数据”
我还必须显示字符串在数组中的索引,如果它被发现但那里也有错误。
以下是我尝试过的代码。
这是最初的问题
- 创建一个要求用户插入 5 个名称的程序。
- 在数组中存储名称
- 要求用户插入他们想从之前创建的列表中找到的名称
- 如果找到名称,则显示“在 [index] 找到的数据”
- 如果没有,则显示“未找到数据”。暗示;使用 Java 方法 equals 比较两个字符串。
package stringsearch;
import java.util.Scanner;
public class StringSearch
{
public static void main(String[] args)
{
int i;
Scanner sc = new Scanner(System.in);
String [] names = new String[5];
for (i = 0; i < names.length; i++)
{
System.out.print("Enter name " + (i + 1) + " > ");
names[i] = sc.nextLine();
}
System.out.print("Input Name to compare > ");
String inName = sc.nextLine();
if (names.equals(inName)){
System.out.println("Data found at ["+i+"]");
}
else
{
System.out.println("Data not found!");
}
}
}
【问题讨论】:
-
你得到什么错误?
-
你正在测试一个字符串数组是否等于一个字符串,这没有逻辑意义。
-
当参数是字符串时,为什么你认为 array.equals 会返回除了 false 之外的任何东西?
-
在``` names.equals(inName) ``` 行中,names 是Array 类型,需要将names 中的元素与inName 进行比较。您可以再次遍历数组并将数组的每个元素与 inName 进行比较
标签: java arrays algorithm indexof string-search