将String元素转换为Array

时间:2013-09-19 08:50:37

标签: java android arrays

我有一个字符串:

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

如何在Java(Android)中将str转换为数组:

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

修改 那么multidimensinal数组怎么样? STR = “[[” A1" , “A2”, “A3”],[ “B1”, “B2”, “B3”]]“;

6 个答案:

答案 0 :(得分:5)

尝试

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

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

<强>更新

将多维数组转换为单维已在SO中得到解答,请检查change multidimensional array to single array

刚刚复制了解决方案

 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]);
    }

答案 1 :(得分:1)

查看String.split()方法

答案 2 :(得分:1)

您可以使用以下方式。

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

答案 3 :(得分:1)

您需要处理字符串并构建数组。您可以查看.split(String regex)(可能需要您进行更多处理来清理字符串),或者使用正则表达式并执行以下操作:

  • 像这样使用正则表达式:\[([^]]+?)\]。这将在方括号中找出字符并将它们放入一个组中。
  • 使用.find()类提供的Matcher方法并迭代匹配项。将所有内容放入列表中,以便您可以根据需要输入多个匹配项。
  • 如果您确实需要将结果放在数组中,请使用.toArray()方法。

答案 4 :(得分: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 );
    }

答案 5 :(得分:0)

试试这段代码。

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