毎回私の関数を実行すると、必要な演算子が返されません。boolean
この方法では、ファイルEmployee.txt
が読み込まれ、次々にファイルが読み込まれます。私がしたことは、分割された文字列を格納するための文字列配列を作成し、String.equalsIgnorCase()
メソッドを実行して、対応するものがファイルのデータと一致するかどうかを調べることです。ここで方法ブール式(JAVA)を使用しているときにJavaループが正しく終了しない - 初心者
コードのコードは次のとおり)ここ
public static boolean SearchByID(String ID){
boolean bool = false;
int idLoc = 3;
try(BufferedReader bufr = new BufferedReader(new FileReader(EMPLOYEE_TXT))){
String line = bufr.readLine();
/*Split the records into an array*/
String[] lines;
while(line !=null){
//do the macthing of data here
lines = line.split(";");
if(lines[idLoc].equalsIgnoreCase(ID)){
bool = true;
break;
}else{
bool = false;
break;
}
}
bufr.close();
}catch(Exception ex){
ex.printStackTrace();
}
return bool;
}
をSearchByID方法SearchByID(
の実装です。私が本当に必要を行うにはEmployee.txt
kadi,bens;male;baliwasan grande;88-11;99111;[email protected];400.0
doe,john;male;11311 asdd;99811;9911331;[email protected];500.0
の
System.out.print("Search user by ID:");
String strID = sID.nextLine();
if(IOLibraries.SearchByID(strID)){
System.out.println("A match has been found");
}else{
System.out.println("No match found");
}
コンテンツは、私はそれがための検索で正しいboolean
値を返す必要があり、その後、ファイル上のすべてのデータを読み取る必要がありますEmployee.txt
ファイルのすべてのユーザー
最初のエントリの下の値を検索すると検索できませんでした。たとえば、ID 88-11を検索すると、データを正しく取得できますが、99811などの最初のエントリの下を検索すると、false
または「一致しません」がEmployee.txtファイルにあっても返されます。
これは 'regex'と何が関係していますか? –
*編集*:最初のレコードのみがwhileループで読み込まれます。 – Dana
最初に学ばなければならないことは次のとおりです。1.コードを適切にインデントすることを学ぶ2. Java命名規則に従うことを学ぶ3.意味のある名前を付けることを学ぶ –