Java S2SE を使用して簡単なプロトタイプ プロジェクトを作成しています。目標は、テキスト ファイルを作成し、それを 1 行ずつ読み取り、リンクされたリストにデータを入力してから、ユーザーにファースト ネームとセカンド ネームの入力を求めることです。
テキストファイルの形式は次のとおりです。
firstnamesecondname モバイル ホーム mobile2 オフィス
contact1contact2 モバイルホーム mobile2s オフィス
テキスト ファイル内のファースト ネームとセカンド ネームを連結します。
次に、ユーザーに姓と名を入力するように求めます。これら 2 つの文字列の連結を使用して、データが入力されたリンク リストを検索します。これらのファースト ネームとセカンド ネームを持つ文字列を含むノードが発生するたびに、そのノードを分割し、そのノードの結果を表示します。
私のコードは次のとおりです。
try {
String fullname;
String mobile;
String home;
String mobile2;
String office;
Node current=first;
while(current.data == null ? key !=null : !current.data.equals(key)) {
String splitter[]=current.next.data.split(" ");
//fullname=splitter[9];
mobile=splitter[1];
home=splitter[2];
mobile2=splitter[3];
office=splitter[4];
if(current.next.data.split(" ")==null?key==null:){
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);
}
問題は、すべてうまくいっているのに、リストの最初のノードから n-1 番目のノードまで検索がうまくいかず、この検索で最後のノードに到達していないことです。