0

我很难理解为什么这不起作用。它的目的是询问名称的第一个字母并根据匹配的字符返回结果。txt 文件设置了许多名称,例如:

  • 埃迪·科克伦 1938 - 1960
  • 克里夫伯顿 1938 - 1960
  • 克里夫伯顿 1938 - 1960
  • 詹姆斯·迪恩 1938 - 1960 1968 - 1970 1978 - 1980

目前它只是列出所有的名字和日期。谁能给我一些建议,谢谢。

import java.util.Scanner;
import java.io.File; 
import java.io.FileNotFoundException;

public class NameYear {

public static void main(String[] args) throws FileNotFoundException 
{

    Scanner keyboard = new Scanner(System.in);
    System.out.print("What is the first letter? ");
    String input = keyboard.next().toLowerCase();
    char firstLetter = input.charAt(0);

    File file = new File("names.txt");
    Scanner input = new Scanner(file);


    while(input.hasNext())
    {
       String firstName  = input.next(); 
       String surname  = input.next(); 
       String year = input.nextLine();  

        if(surname.charAt(0) == firstLetter);
         { 
           System.out.println(firstName + " " + surname + year);
         }
     }
 input.close();
}
}
4

1 回答 1

2

我认为你的问题是这一行:

if(surname.charAt(0) == firstLetter);

去掉最后的分号。

这是删除括号后代码的样子。

if(surname.charAt(0) == firstLetter);
System.out.println(firstName + " " + surname + year);

如您所见,这些只是一个接一个的陈述。

于 2012-09-09T09:11:03.520 回答