Java 正在尝试从文件中查找并打印一行
我有一个程序,它可以做几种不同的事情,其中一种方法是在文件中查找一个项目,并在行中显示该文件的属性(共3个)。出于某种原因,这只是打印出文件中的前三个字符串,而不是查找并打印我搜索的项目Java 正在尝试从文件中查找并打印一行,java,Java,我有一个程序,它可以做几种不同的事情,其中一种方法是在文件中查找一个项目,并在行中显示该文件的属性(共3个)。出于某种原因,这只是打印出文件中的前三个字符串,而不是查找并打印我搜索的项目 public static void findItem() throws FileNotFoundException { Scanner kb = new Scanner(System.in); FileReader reader = new FileReader("read_record.txt"
public static void findItem() throws FileNotFoundException {
Scanner kb = new Scanner(System.in);
FileReader reader = new FileReader("read_record.txt");
Scanner fin = new Scanner(reader);
System.out.println("Enter the sku of the dvd you wish to find.");
String dvdSku = kb.next();
while (fin.hasNext()){
String nextString = fin.next();
if (nextString == dvdSku); {
String skuToFind = nextString;
String titleToFind = fin.next();
String lengthToFind = fin.next();
System.out.printf("%-10s %-15s %10s %n",skuToFind,titleToFind,lengthToFind);
break;
}
}
}
使用equals或equalsIgnoreCase比较字符串
if (nextString.equals(dvdSku)){
另外,删除您的break语句,除非您想在第一次匹配时停止。删除break语句,它将能够搜索整个文件,也可以搜索if后面和括号之前的分号。实际上,它将编译并结束if。然后括号里的东西每次都会被调用。啊,我真蠢。它总是一个分号哈哈。谢谢@user305052发生这种情况时。:)现在一切都好了,谢谢大家。