1

これは、他の 2 つのクラスの駆動方法です。ここに投稿しました https://codereview.stackexchange.com/questions/33148/book-program-with-arraylist

private static ArrayList getAuthors(String authors) メソッドについて助けが必要です。親切な初心者です。このドライブ方法を完了するのを手伝ってください。または道順を教えてください。

命令

allAuthors 配列の一部の要素には、2 つの著者名の間にアスタリスク「*」が含まれています。getAuthors メソッドは、このアスタリスクを名前間の区切り文字として使用して、返された文字列の ArrayList に個別に格納します。

import java.util.ArrayList;

public class LibraryDrive {

public static void main(String[] args) {

    String[] titles = { "The Hobbit", "Acer Dumpling", "A Christmas Carol",
            "Marley and Me", "Building Java Programs",
    "Java, How to Program" };

    String[] allAuthors = { "Tolkien, J.R.", "Doofus, Robert",
            "Dickens, Charles", "Remember, SomeoneIdont",
            "Reges, Stuart*Stepp, Marty", "Deitel, Paul*Deitel, Harvery" };

    ArrayList<String> authors = new ArrayList<String>();
    ArrayList<Book> books = new ArrayList<Book>();

    for (int i = 0; i < titles.length; i++) {
        authors = getAuthors(allAuthors[i]);
        Book b = new Book(titles[i], authors);
        books.add(b);
        authors.remove(0);
    }
    Library lib = new Library(books);
    System.out.println(lib);
    lib.sort();
    System.out.println(lib);

}

private static ArrayList<String> getAuthors(String authors) {
    ArrayList books = new ArrayList<String>();
            // need help here.
    return books;
}

}
4

5 に答える 5

5

これを試して

private static ArrayList<String> getAuthors(String authors) {
    ArrayList books = new ArrayList<String>();
      String[] splitStr = authors.split("\\*");
      for (int i=0;i<splitStr.length;i++) {
        books.add(splitStr[i]);
       }
    return books;
}
于 2013-10-24T09:53:23.017 に答える
1

ArrayListこれを試してみてください。実際には、for ループのゼロ インデックス要素を削除する理由がわかりません。

private static ArrayList<String> getAuthors(String authors) {
    ArrayList<String> array = new ArrayList<String>();
    String[] authorsArray = authors.split("\\*");
    for(String names : authorsArray );
        array.add(names);
    return array;
}
于 2013-10-24T09:58:24.723 に答える
0

String#splitメソッドを見てみましょう。これは、著者をアスタリスクで区切るのに役立ちます。このメソッドは配列を返すため、この配列に含まれる作成者の数を確認し、それぞれを に保存する必要がありますArrayList

于 2013-10-24T09:50:56.900 に答える
0

これを行う方法は次のとおりです。

  1. authorsアスタリスク記号に基づいてメソッド パラメータとして取得している文字列を分割します。(使用String.split(delim)方法)
  2. 結果の string[] 配列は、forループを使用して反復する必要があり、反復された各要素をリストに追加する必要があります。(使用List.add(elem)方法)
  3. 完了したら、そのリストを返します(すでに行っています)。

方法がわかったので、自分でコードを実装する必要があります。

于 2013-10-24T09:52:14.177 に答える