私は String を持っています:
str="[a],[b],[c]";
Java(Android)でstrを配列に変換するにはどうすればよいですか:
array[0] -> a
array[1] -> b
array[2] -> c
編集: 多次元配列はどうですか? str="[["a1","a2","a3"],["b1","b2","b3"]]";
試す
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]);
}
String.split()メソッドを見てください
文字列を処理して配列を構築する必要があります。.split(String regex)
(文字列をきれいにするためにさらに処理を行う必要があるかもしれません)を見るか、正規表現を使用して次のようにすることができます。
\[([^]]+?)\]
。これにより、角括弧内の文字が検索され、グループに入れられます。.find()
クラスから利用可能なメソッドを使用しMatcher
て、一致を繰り返します。必要な数のヒットを入れることができるように、すべてをリストに入れます。.toArray()
メソッドを使用します。次の方法で使用できます。
String Vstr = "[a],[b],[c]";
String[] array = Vstr.replaceAll("\\]|\\[", "").split(",");
正規表現の代替と、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 );
}