2017-06-07 31 views
-2

私は、ユーザがドロップダウンから任意のオプションを選択した場合、その値はサーバにArrayListとなるシナリオを持っています。ユーザーが何も選択しなかった場合、デフォルト値はサーバーにStringとして送信されます。 Javaでは、値を文字列に変換する必要があります(ArrayList文字列に変換する必要がある場合は文字列をそのまま使用します)ArrayListを文字列に変換する最も良い方法

代わりにあなたが現在[\\[\\]]を使用し、使用している正規表現の

String encoding = myMap.get("encoding").toString(); 

encoding = encoding.replaceAll("\\[\\]", ""); \\removing brackets 
+0

[JSON](http://www.json.org/)という簡潔で一般的な構文を使用しているので、 – AxelH

+0

オプションのドロップダウンデータの構造は何ですか –

+0

私がやっていることは正しい? – ramya

答えて

0

List<Integer> list = Arrays.asList(1,2,3,4,5); 
String s = list.toString().replaceAll("[\\[\\]]", ""); 
System.out.println(s); 

それとも、

のように、 substringを使用することができます。私は、コードの下にしようとしています。
String s = list.toString().substring(1, list.toString().length()-1); 
+0

それを処理する最善の方法はありますか? arraylistを文字列に変換してから、中括弧を削除するのではなく、 – ramya

+0

@ramyaまた、部分文字列を使用することもできますが、これは高速である可能性がありますが、ほとんどの場合、違いはありません。 –

+0

Arraylistには常に1つの要素しかありません – ramya

0

私はあなたが彼らが異なって文字列に変換されるため、文字列に変換するオブジェクトが、あるか配列でないかどうかを確認する必要があると思う:

public String listToString(List<Object> list) { 
     StringBuilder sb = new StringBuilder(); 

     for (Object object : list) { 
      if (object != null) { 
       if (object.getClass().isArray()) { 
        sb.append(Arrays.toString((Object[]) object)); 
       } else { 
        sb.append(object.toString()); 
       } 
      } 
     } 
     return sb.toString(); 
    } 
0

彼らはあるので、あなたが今までlist.toString().replaceAll("[\\[\\]]", "")のようなものに頼るべきではありませんを使用して、特定のリストについては、toStringメソッドの実装とコードがクラッシュすること任意の瞬間を変更することができます...

をjava8以来
に参加します10
List<Object> olist = Arrays.asList(1, 2, 3, 4, 5); 
List<String> sList = olist.stream().map(String::valueOf).collect(Collectors.toList()); 
String results = String.join(",", sList); 
System.out.println(results); 
+0

私はマップを持っています。マップの値は、要素が1つだけのarralylistでも文字列でもかまいません。私が今やっていることは、マップから値を取得することです(1つの要素または文字列を持つarraylistかもしれません)、Tostringを使って文字列に変換してから、ブラケットString encoding = myMap.get( "encoding")。toString ; – ramya

関連する問題