2017-06-10 10 views
1

これは私の最初の質問です。私はビジネス管理を勉強し、楽しみのためだけにJavaを学び始めました。私はフィンランドの大学からMOOCコースをやっています。私は運動101である。書籍の検索機能を備えた図書館をプログラムしなければならない。タイトル、出版社、年のいずれかで検索することができます。独自のクラスを持つArrayListの文字列値を見つける

public ArrayList<Book> searchByPublisher(String publisher){ 
     ArrayList<Book> found = new ArrayList<Book>(); 
     if (bibo.contains(publisher)){ 
     found.add(bibo.get(bibo.indexOf(publisher)));    
      }    
     return found; 

か::

public ArrayList<Book> searchByTitle(String title){ 
     ArrayList<Book> found = new ArrayList<Book>(); 
     String [] neueListe = new String[bibo.size()]; 
     for (int i = 0; i < bibo.size(); i++){ 
      neueListe[i] = bibo.get(i).toString(); 
      found.add(neueListe[i].toString()); 
     } 
     return found; 

"bibo"は図書とArrayListある

私の唯一のアイデアは(動作しませんでしたこと)されたものでした。

私はインターネットでアイデアや解決策を探してきましたが、もちろんGitHubにいくつか出くわしました。しかし、私が見つけたすべてのコードが同じ考えを使用:

for(Book i : this.bibo){ 
     if(StringUtils.included(i.title(), title)){ 
      found.add(i); 
     } 

はコースでStringUtils.includedが使用されていませんでしたし、私のNetBeansのバージョンは、それを知りません。

推理で私の誤りはどこですか?

おかげ

+0

を '貼り付けられたjarファイルを選択>礼儀>ライブラリ>は

  • JAR /フォルダを追加するには、プロジェクトをクリックします。 yというライブラリあなたがそれを使いたい場合は、プロジェクトに含める必要があります。学習のためにこれを行うので、独自の 'StringUtils.included'メソッドをより良くコーディングする必要があります。 –

  • 答えて

    1

    StringUtils :-)最初の場所で、すでに多くは、第三部品ライブラリのフォームApache Commons Langです。このクラスを使用する場合は、NetbeansのプロジェクトにApache Commons Langを追加する必要があります。
    このチュートリアルでは、NetBeansでのApache Commonsのを追加する方法を示しています。 https://www.satollo.net/netbeans-apache-commons-and-commons-javadoc-for-auto-completion

    0

    public ArrayList<Book> searchByPublisher(String publisher){ 
         ArrayList<Book> found = new ArrayList<Book>(); 
         if (bibo.contains(publisher)){ 
          found.add(bibo.get(bibo.indexOf(publisher)));    
         }    
         return found; 
    

    における問題は、それがどの出版社の本が含まれている場合、あなたが尋ねるべきながらbiboStringが含まれている場合、あなたが求めているということですフィールドは、そのString(searchByPubisherへの入力)と等しくなります。

    public ArrayList<Book> searchByPublisher(String publisher){ 
         ArrayList<Book> found = new ArrayList<Book>(); 
         for(Book b: bibo){ 
         if(b.getPublisher().equals(publisher)) 
         found.add(b);    
         }    
         return found; 
    } 
    

    searchByTitle機能も同様に実装できます。

    また、Streamsを使用してジョブを実行することもできます。 (あなたがjavaを学んでいるので) 次のようなものは、あなたがそれを自分で動作させるせるのに十分なはずです:

    List<Book> found = 
        bibo.stream() 
           .filter(b -> t.getPublisher().equals(publisher)) 
           .collect(toList()); 
    

    ・ホープ、このことができます。

    0

    私はこのようにします。

    public ArrayList<Book> searchByTitle(String title){ 
        ArrayList<Book> found = new ArrayList<Book>(); 
        for (Book book: bibo) { 
         if(book.title.contains(title)) { 
           found.add(book); 
         } 
        } 
        return found; 
    

    さらにJavaの経験がある場合は、Java 8 Streamsとフィルタ関数を参照することもできます。 Java 8 Streams example

    0

    のStringUtils Apacheのリンク(現在コモンズ-lang3-3.5ビンから最新のバイナリ.zipファイルをダウンロードしorg.apache.commons.langライブラリから

    1. クラスです。ファスナー): https://commons.apache.org/proper/commons-lang/download_lang.cgi
    2. あなたは
    3. オープンのNetBeans、右を作成したlibディレクトリに enter image description here
    4. コピーのみの.jarのzipフォルダのファイルと、それを超えて、あなたのNetBeansのディレクトリに「LIB」フォルダを作成します。 「相対パス」を選択し、あなたのライブラリフォルダへ
    5. StringUtils`は、Apache Commonsの、サードパーティに所属
    関連する問題