사용자가 계정 정보가 포함 된 데이터베이스를 쿼리 할 수있는 작은 프로그램을 작성 중입니다. 데이터베이스는 단순한 텍스트 파일입니다. 문제는 문자열에 키워드가 포함되어 있는지 확인하려고하는 함수에 중복 결과가 생성되는 경우입니다. 중복 결과Java String.contains()가 중복 결과를 생성합니다.
public void actionPerformed(ActionEvent arg0) {
// Clear the text area.
textAreaRecords.setText("");
String keyword;
String[] keywords;
String[] parts;
String line;
String record = "";
boolean recordFound = false;
// Get keywords from field.
keyword = textFieldKeywords.getText();
keywords = keyword.split(" ");
// Open the file and read form it.
try {
FileReader fReader = new FileReader("Passwords.txt");
BufferedReader reader = new BufferedReader(fReader);
while((line = reader.readLine()) != null) {
parts = line.split("\t");
for(int i = 0; i < keywords.length; i++) {
if(parts[0].contains(keywords[i]))
recordFound = true;
}
if(recordFound) {
if(parts.length == 5)
record += parts[0] + "\t" + parts[1] + "\t" + parts[2] + "\t" + parts[3] + "\t" + parts[4] + "\n";
else
record += parts[0] + "\t" + parts[1] + "\t" + parts[2] + "\t" + parts[3] + "\n";
textAreaRecords.append("Account \t Username \t Password \t Email \t Notes\n\n");
textAreaRecords.append(record);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
예 ...
데이터베이스가 포함되어 있습니다 :
BT username password email someOtherNotes Gmail username password email someOtherNotes Gmail OtherGmail password email notes
키워드 제공 : Gmail
프로그램 결과 : 여기
내 코드입니다BT username password email someOtherNotes Gmail username password email someOtherNotes
무엇이 잘못되었으며 어떻게 수정합니까?
감사합니다. 그게 내 문제를 해결해 줬어. 나는 다른 것들도 살펴볼 것이다. – user4155352