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 に答える