0

プロジェクトの割り当ては次のとおりです。

temp_Larry フォルダーに格納されている NerdData という名前のファイルからテキスト行を入力する FileNerd という名前のクラスを作成します (名前が Larry であると仮定します)。ファイル入力ループの後、「The」という単語で始まる行だけを出力するループを作成します。

だからこれは私がこれまで持っているものです

import java.util.*;
import java.io.*;
public class FileNerd
{
    public static void main (String args[]) throws IOException
    {
        Scanner sf = new Scanner(new File("C:\\temp_Larry\\NerdData.txt"));
        int maxIndx = -1;
        String text[] = new String[100 ];
        while(sf.hasNext())
        {
            maxIndx++;
            text[maxIndx]=sf.nextLine();
        }
        sf.close();

        for(int j = 0; j <= maxIndx; j++)
        {
            String q = text[j];

            if( q.substring(3).equals("The"))
            {
                System.out.println(q);
            }
        }
    }
}

構文エラーなしでコンパイルされますが、何も出力されないため、何が間違っているのかわかりません。

4

1 に答える 1

0

デバッグに関するいくつかの考え:

  • System.out.println(debug_msg)何が起こっているのかを理解するために、コード全体に追加のステートメントを書くことができます。
  • これらのデバッグ行を追加すると、通常、自分の問題を解決する方法がわかります。
  • さらに、デバッガーを使用できます (ほとんどの IDE にはデバッガーが付属しています)。ブレーク ポイントを設定して、プログラムを停止し、コードをウォークスルーできます。

あなたのコードを見ると、明らかな間違いは見当たりません。何が起こっているのかを理解し、自分でデバッグできるように、このデバッグ行を追加することをお勧めします。

for(int j = 0; j <= maxIndx; j++) {
     String q = text[j];
     // this will tell you what the contents of the line are
     System.out.println(q)

     if( q.substring(3).equals("The")) {
        System.out.println(q);
     }
}
于 2014-10-25T18:16:18.477 に答える