0

私は現在、テキストファイルから情報を読み取り、読み取った情報をユーザー入力と比較して、一致するかどうかを示すメッセージを出力する必要があるこのプログラムを作成しています。

現在これを持っています。プログラムは指定されたデータを正常に読み取っていますが、最後に文字列を正しく比較して結果を出力できないようです。

コードは下にあり、助けていただければ幸いです。

import java.util.Scanner;      // Required for the scanner
import java.io.File;               // Needed for File and IOException 
import java.io.FileNotFoundException; //Required for exception throw

// add more imports as needed

/**
 * A starter to the country data problem.
 * 
 * @author phi 
 * @version starter
 */
public class Capitals
{
    public static void main(String[] args) throws FileNotFoundException // Throws Clause Added
    {
        // ask the user for the search string
        Scanner keyboard = new Scanner(System.in);
        System.out.print("Please enter part of the country name: ");
        String searchString = keyboard.next().toLowerCase();

        // open the data file
        File file = new File("CountryData.csv");

        // create a scanner from the file
        Scanner inputFile = new Scanner (file);

        // set up the scanner to use "," as the delimiter
        inputFile.useDelimiter("[\\r,]");

        // While there is another line to read.
        while(inputFile.hasNext())
        {
            // read the 3 parts of the line
            String country = inputFile.next(); //Read country
            String capital = inputFile.next(); //Read capital
            String population = inputFile.next(); //Read Population

            //Check if user input is a match and if true print out info.
            if(searchString.equals(country))
            {
                System.out.println("Yay!");
            }
            else
            {
                System.out.println("Fail!");
            }
        }

        // be polite and close the file
        inputFile.close();
    }
}
4

3 に答える 3

1

ユーザーが国を入力するユーザー インターフェイス (可視ウィンドウ) の textField から入力を読み取り、生の入力としてそれを取得してコードを短縮する必要があります (画面上に可視ウィンドウがある場合のみ)

私はそれを持っていませんスキャナーを使用するとアプリケーションがクラッシュする傾向があるため、スキャナーの使用経験は良好です。ただし、同じテストのコードには、アプリケーションをクラッシュさせず、次のように見えるファイルのスキャナーのみが含まれています。

    Scanner inputFile = new Scanner(new File(file));

    inputFile.useDelimiter("[\\r,]");
    while (inputFile.hasNext()) {
        String unknown = inputFile.next();
        if (search.equals(unknown)) {
            System.out.println("Yay!");
        }
    }

    inputFile.close();


文字列をファイルと比較する最も簡単な方法は、ユーザーが国を入力する可視ウィンドウを追加し、文字列への入力を次のように読み取ることだと思いますString str = textField.getText();

于 2015-03-14T21:24:19.047 に答える
0

大文字と小文字を区別するために比較が失敗していると推測しています。

文字列比較は CASE-INSENSITIVE であってはなりませんか?

于 2013-04-16T06:34:14.147 に答える