私はsearchtextという名前のテキストフィールドを持っていて、それはユーザーの入力です。ボタンをクリックすると、csvファイルからインポートされた9126の値を持つリストが検索され、ラベルにユーザーの入力がある行が印刷されます。私は必要なものでは正確にJavaの検索としてユーザーの入力を使ってリストから特定の行を印刷する方法
public void search(ActionEvent actionEvent) throws IOException{
ArrayList<String> list=new ArrayList<>();
Scanner scanner = new Scanner(file); //I have a file named "something.csv"
while (scanner.hasNextLine()) {
list.add(scanner.nextLine());
} //now i have all 9126 lines in the list
String search = searchtext.getText().replaceAll("\\s", ""); //searchtext is the users input
if (list.contains(search)){
//PRINT THE LINE THAT CONTAINS WHAT THE USER WROTE
}
}
:私のリストの中に私は、この値1,Toy Story (1995),Adventure|Animation|Children|Comedy|Fantasy
を持っています。私が欲しいのは、ユーザーがを検索フィールド1,Toy Story (1995),Adventure|Animation|Children|Comedy|Fantasy
に入力したときにラベルに印刷されます。私はToy
がそうのような.contains()
によって読み取られるかどうかを確認するためのテスト作成:
if (list.contains(search)){
//PRINT THE LINE THAT CONTAINS WHAT THE USER WROTE
System.out.println("in the list");
}else{
System.out.println("outside the list");
}
をしかし、私は正確に1,Toy Story (1995),Adventure|Animation|Children|Comedy|Fantasy
を入力するいけない場合"outside the list"
を取得することです。だから私は私の質問は、キーワードのリストを検索し、その行を印刷するメソッドを作成する方法だと思います。最も簡単な方法は、すべての行をループになると、あなたはマッチング結果を見つけたら壊す
'list'は文字列の配列です。明らかに、 'list'のすべての要素をループし、そのループで' contains'を使う必要があります。 – jrook
「印刷する」方法がわからないか、「印刷する」正しい行を見つける方法がわかりません。また、「印刷物」はとても一般的なものなので、正確に何をすべきか? – Jai
'list.contains(search)'が真の場合、検索テキストを含む行は 'search'と全く同じです。だから、 'label.setText(search)'だけが必要です。しかし、たとえそれがあなたが書いた論理であっても、それはあなたが意図した論理ではないかもしれません。 –