我需要创建一个用户可以输入名称的程序,程序将逐行搜索文件,直到匹配为止,然后返回所有匹配项。所以这就是我所拥有的,我将文件放入程序中,但似乎无法编写程序来搜索文件以获取用户输入。有什么帮助吗?
作业:这是代码必须要做的。
读取每一行,解析出名称部分,对名称进行匹配,如果匹配则返回全名,否则移至下一行。如果你在没有匹配的情况下到达目的地,请留言。
import java.util.Scanner;
import java.io.*;
public class USpres {
public static void main(String[] args) throws FileNotFoundException {
File file = new File ("USPres.txt");
Scanner kb = new Scanner(System.in);
Scanner scanner = new Scanner(file);
System.out.println("Please enter the name you would like to search for: ");
String name = kb.nextLine();
while (scanner.hasNextLine())
{
if(scanner.nextLine() == kb)
{
System.out.println("I found " +name+ " in file " +file.getName());
}
break;
答案 0 :(得分:1)
if(scanner.nextLine() == kb)
{
System.out.println("I found " +name+ " in file " +file.getName());
}
应该成为
if(scanner.nextLine().equalsIgnoreCase(name))
{
System.out.println("I found " +name+ " in file " +file.getName());
}
就像他们在评论中所说的那样。另外,.equals()用于比较两个对象,而不是两个字符串。由于它们都是字符串,因此您可以使用此方法取得成功,但我建议在比较字符串时始终使用.equalsIgnoreCase()。