回答編集履歴
1
最初からやり直し
answer
CHANGED
@@ -16,4 +16,14 @@
|
|
16
16
|
}
|
17
17
|
}
|
18
18
|
```
|
19
|
-
stack[-1]を参照しようとして落ちます。
|
19
|
+
stack[-1]を参照しようとして落ちます。
|
20
|
+
|
21
|
+
ひとまずこの点に関しては、thisをなくせば解決するのですが、それ以外にもこれらのクラスにはツッコミどころが満載で、ちまちま修正してたら大変なので、最初から作り直すことをお勧めします。
|
22
|
+
そもそも回文、というよりは逆転?した文字列を作りたいなら(サロゲートペアがない限り)char配列で事足りますからね。
|
23
|
+
|
24
|
+
具体的に言うと、Stackクラスのpushメソッドだけ取り上げても、
|
25
|
+
- Objectで配列宣言している割に、pushで詰めているのはcharのみ。char配列で十分。
|
26
|
+
- 満杯判定が最初だけのため、空き容量より長い文字列になるものをpushすると例外が発生する。
|
27
|
+
- ループのたびに引数ObjectをtoStringしている。引数がStringならいいが、他のオブジェクトが入った場合、同じ文字列化をループする分繰り返すことになる。ループに入る前に1回で十分。
|
28
|
+
|
29
|
+
こんな感じで、他についても多数おかしな点があります。
|