-4

私は String を持っています:

str="[a],[b],[c]";

Java(Android)でstrを配列に変換するにはどうすればよいですか:

array[0] -> a
array[1] -> b
array[2] -> c

編集: 多次元配列はどうですか? str="[["a1","a2","a3"],["b1","b2","b3"]]";

4

6 に答える 6

5

試す

String str="[a],[b],[c]";
str= str.replaceAll("\\]|\\[", "");
String[] arr= str.split(",");

===========================================

アップデート

多次元配列を単一次元に変換することは SO で既に回答されていますので、多次元配列を単一配列に変更することを確認してください

ソリューションをコピーしただけです

 public static String[] flatten(String[][] data) {
        List<String> toReturn = new ArrayList<String>();
        for (String[] sublist : Arrays.asList(data)) {
            for (String elem : sublist) {
                toReturn.add(elem);
            }
        }
        return toReturn.toArray(new String[0]);
    }
于 2013-09-19T08:53:07.977 に答える
1

String.split()メソッドを見てください

于 2013-09-19T08:53:21.813 に答える
1

文字列を処理して配列を構築する必要があります。.split(String regex)(文字列をきれいにするためにさらに処理を行う必要があるかもしれません)を見るか、正規表現を使用して次のようにすることができます。

  • 次のような正規表現を使用します\[([^]]+?)\]。これにより、角括弧内の文字が検索され、グループに入れられます。
  • .find()クラスから利用可能なメソッドを使用しMatcherて、一致を繰り返します。必要な数のヒットを入れることができるように、すべてをリストに入れます。
  • 結果を配列にする必要がある場合は、.toArray()メソッドを使用します。
于 2013-09-19T08:59:19.313 に答える
1

次の方法で使用できます。

String Vstr = "[a],[b],[c]";
String[] array = Vstr.replaceAll("\\]|\\[", "").split(",");
于 2013-09-19T08:55:55.110 に答える
0

正規表現の代替と、npintiが話していると思うもの:

    String myStrg = "[a],[b],[c]";
    int numCommas = 0;

    for( int i = 0; i < myStrg.length(); i++ )
    {
        // Count commas
        if( myStrg.charAt(i) == ',' )
        {
            numCommas++;
        }
    }
    // Initialize array
    myArry = new String[numCommas];
    myArry = myStrg.split(",");

    // Loop through and print contents of array
    for( String arryStrg: myArry )
    {
        System.out.println( arryStrg );
    }
于 2013-09-19T09:04:27.080 に答える