だから私がしなければならないことは、ファイルから読み込み、入力が見つかった場合にHRがいくつか入力された後に入力がある行を印刷することです。それはソートされていますが、私の問題は私のelse文です.HRコードが見つからなければ、それは入力が見つからなかったのですが、入力した番号が見つかったとしても問題はありません。その中に番号がない行。 (申し訳ありませんが、物事を説明してくそ)が、とにかくここにコードです。else文で行を読むときに問題が発生する
これがわかりやすいかどうかわかりませんが、入力が見つかったら行が印刷されていればうまくいきます。しかし、私は何をする必要があります。入力が見つからない場合は、その後、私はそれは、入力がファイルに見つからなかったことをプリントアウトしたいのですが、私はそれがファイルに
package Assignment;
import java.util.*;
import java.io.*;
public class Planets1 {
public static void main(String [ ] args)
{
{
File file =new File("stars1.dat");
Scanner in;
Scanner keyboard = new Scanner (System.in);
System.out.println("Enter HR code : ");
String userInput = keyboard.nextLine();
try {
in = new Scanner(file);
while(in.hasNext())
{
String line=in.nextLine();
if(line.contains(userInput.toUpperCase()))
System.out.println(line);
else if(!line.contains(userInput.toUpperCase()))
System.out.println("No Planet with the HR code: " + userInput.toUpperCase() + " Was found.");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
、何であるすべての行のためにプリントアウトする必要はありませんコードが見つかった場合には、出力された:
Hrで897
Acamar、シータ1エリダニ; HR 897
:はHRコードを入力してください3210
HRコードのある惑星はありません:HR 897が見つかりました。
HRコードのある惑星:HR 897が見つかりました。
HRコードのある惑星:HR 897が見つかりました。
HRコードのある惑星:HR 897が見つかりました。
HRコードのある惑星:HR 897が見つかりました。
HRコードのある惑星:HR 897が見つかりました。
ない、これはあなたのを解決するために起こっているかどうかわからをいくつかのアドバイス:1) 'if'と' else if'ボディの周りに '{}'を追加してください。 2) 'else if(...)'を単純な 'else'にすることができます。 – domsson
3)ループ条件に 'hasNext()'を使用しているのになぜ 'nextLine()'を使用しているのですか?あなたは 'hasNextLine()'があることを知っていますよね? – domsson
4)一致しない行には何も表示しない場合は、 'else if'部分全体を完全に削除しないでください。私はあなたがしようとしていることを誤解しているかもしれません... – domsson