0

テキスト ファイルを使用して、Java SE アプリを使用してリンク リストに入力したいと考えています。テキスト ファイルの形式は次のとおりです。

ファーストネームラストネーム モバイルホームオフィス

これらの行を連結リストにノードとして挿入したい! 次に、テキスト ファイルから入力されたリンク リストから特定のノードを検索します。

キーとして firstnamelastname を使用して、それをノード データと比較したい (データは「キー」と比較するために分割する必要があります) 特定のノードを見つけた後、そのノード データを split(" ") を使用して分割します。結果を表示します!!!

私はそれをすべて行うヒントについて知りたいだけです。事前に非常に感謝します。助けてください!!!

私はJavaソースコードを生成しましたが、常に最後のノードデータを提供するため機能しません。完全に間違っているかどうかを確認してください。あなたのアイデアを教えてください!

    try {
        String fullname;
        String mobile;
        String home;
        String mobile2;
        String office;

        Node current = first;

        while (current.data != key) {

            String splitter[] = current.data.split(" ");

            fullname = splitter[0];
            mobile = splitter[1];
            home = splitter[2];
            mobile2 = splitter[3];
            office = splitter[4];

            if (fullname == null ? key == null : fullname.equals(key)) {
                mobilefield.setText(mobile);
                homefield.setText(home);
                mobilefield2.setText(mobile2);
                officefield.setText(office);
            } else {
                throw new FileNotFoundException(
                        "SORRY RECORD NOT LISTED IN DATABASE");
            }
            break;
        }
    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, e.getMessage()
                + "\nPLEASE TRY AGAIN !", "Search Error",
                JOptionPane.ERROR_MESSAGE);
    }


(key is as=firstname+lastname;)
4

1 に答える 1

0

ArrayListを使用します(必要なメモリが少なく、ほとんどの操作でパフォーマンスが向上します)

current.dataコードは私には問題ないように見えますが、エントリごとにを分割するわけではありません。

私は次のようなテストを使用します

if(current.data.startsWith(key)){
  String splitter[]=current.data.split(" ");

  ...

}

そして、これが本当である場合にのみ、私は分割します。current.dataなぜなら、この場合にのみ、モバイル*ホーム*オフィスが必要だからです。

于 2012-12-27T16:37:27.960 に答える