回答編集履歴

2

修正

2025/01/26 06:09

投稿

jimbe
jimbe

スコア13286

test CHANGED
@@ -65,7 +65,7 @@
65
65
 
66
66
  equals() を override するなら hashCode() も override してください。
67
67
 
68
- toString() の結果を UI に使うのは止めたほうが良いです。(toString はデバッグ用です。)
68
+ toString() の結果を UI に使うのは止めたほうが良いです。(toString は基本的にはデバッグ用です。)
69
69
 
70
70
  メニューや ISBN の処理等にバグがあります。
71
71
 

1

追加修正

2025/01/26 06:05

投稿

jimbe
jimbe

スコア13286

test CHANGED
@@ -67,4 +67,21 @@
67
67
 
68
68
  toString() の結果を UI に使うのは止めたほうが良いです。(toString はデバッグ用です。)
69
69
 
70
- 一部にバグがあります。
70
+ メニューや ISBN の処理等にバグがあります。
71
+
72
+ 以下は Pattern を使う意味がありません。
73
+ ```java
74
+ public List<Book> searchBookByTitle(String title){
75
+ Pattern p = Pattern.compile(".*" + Pattern.quote(title) + ".*");
76
+ List<Book> resultList = new ArrayList<>();
77
+ for(Book book : bookList){
78
+ Matcher m = p.matcher(book.title);
79
+ if(m.find()) resultList.add(book);
80
+ }
81
+ return resultList;
82
+ }
83
+ ```
84
+ String#contains やついでに Stream を使うと以下で済みます。
85
+ ```java
86
+ return bookList.stream().filter(book -> book.title.contains(title)).toList();
87
+ ```