

タイトルの通り、jsp上でArrayListから取得した値に不要についてくる角括弧を削除したいです。  
イメージ：  
[123abc] → 123abc  
以下のコーディングは検証済みでどれもうまくいきませんでした。

①replaceAllメソッド（正規表現なし）

[code]

    <% String str1 = str.replaceAll("[[]]", ""); %>
    <p>出力：<%= str1 %><p>
    
[/code]

②replaceAllメソッド（正規表現あり）

[code]

    <% String str1 = str.replaceAll("[\[\]]", ""); %>
    <p>出力：<%= str1 %><p>
    
[/code]

③replaceメソッド（正規表現なし）

[code]

    <% String str1 = str.replace("[", "").replace("]", ""); %>
    <p>出力：<%= str1 %><p>
    
[/code]

④replaceメソッド（正規表現あり）

[code]

    <% String str1 = str.replace("\[", "").replace("\]", ""); %>
    <p>出力：<%= str1 %><p>
    
[/code]

何かヒントとなるようなことをご存知でしたら知恵をお貸しください。  
宜しくお願いいたします。


CC BY-SA 4.0
2022-01-26T09:35:00.503
85946
2022-01-28T02:45:25.897
2022-01-28T02:45:25.897
3060
50955
question
java jsp
ArrayListから取得した値をjspで画面表示すると不要な角括弧（"[", "]"）が出力されます。消す方法を教えていただけないでしょうか？
  
  
[`List#replaceAll()`](https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/util/List.html#replaceAll\(java.util.function.UnaryOperator\))
はリストの要素を置換するメソッドです。

それに対し、今回出力されている文字列は [`ArrayList#toString()`
メソッド](https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/util/AbstractCollection.html#toString\(\))によって文字列化された結果です。  
(出力されている角カッコは要素に含まれているものではなく、 `toString()` メソッドが付与しているものです)

文字列置換によって角カッコを取り除きたいのであれば、 `toString()` の結果を対象にする必要があります:

[code]

    String str1 = str.toString().replaceAll("^\\[|\\]$", "");
    
[/code]

`toString()` の文字列表現が気に入らないのであれば、 `toString()` を使わずに済ます、という解もあります。  
例えば、 [`String.join()`
メソッド](https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/lang/String.html#join\(java.lang.CharSequence,java.lang.Iterable\))
を利用して次のように文字列化できます:

[code]

    String str1 = String.join(", ", str);
    
[/code]


CC BY-SA 4.0
2022-01-26T17:03:58.790
85958
2022-01-26T20:06:59.183
2022-01-26T20:06:59.183
2808
2808
85946
answer