1

という名前の 1 ~ 31 の番号を持つ .txt ファイルがありますnumbers。次のようなスキャナーをセットアップしました。

    cardCreator = new Scanner (new File ("numbers"));

この後、どの方法を使用できるかについて混乱しています。

numbers,各行 (または番号 1 ~ 31) を評価し、numbersonCard特定の基準を満たしている場合は、各番号を という文字列に含める条件ステートメントを設定したいと考えています。

これがどのように機能するかを想像することはできますが(おそらくhasNext()nextLine()または何かを使用して)、まだAPIに少し圧倒されています...

どの方法を使用できるかについての提案はありますか?

4

3 に答える 3

4

コンピューター サイエンスは分解がすべてです。問題を小さな問題に分割します。

まず最初に、そのファイルを読み取ってエコー バックできますか?

次に、各行をその数字の部分に分割できますか?

では、それぞれの数字を思い通りに加工していただけませんか?

問題を分解できれば、より速く進歩します。

Java Almanacは、サンプル スニペットの最良のソースの 1 つだと思います。たぶん、それはいくつかの基本的なことであなたを助けることができます.

于 2009-10-04T18:01:03.720 に答える
1

ダフィーモとロブが提供した優れた回答よりももう少し具体的なヘルプを提供するには、あなたの本能が正しい. おそらく次のようなものが必要です。

cardCreator = new Scanner (new File ("numbers"));
while (cardCreator.hasNextInt()) {
    int number = cardCreator.nextInt();
    // do something with number
}
cardCreator.close();

hasNext() と nextInt() を使用すると、スキャナーから文字列を取得して自分で解析する必要がなくなります。ただし、Scanner のデフォルトの区切り文字が Windows の行末 CRLF を 1 つまたは 2 つの区切り文字として解釈するかどうかはわかりません。

于 2009-10-04T19:05:50.350 に答える