-4

我有一个字符串:

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(",");

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

更新

将多维数组转换为单维已经回答了所以请检查将多维数组更改为单数组

刚刚复制了解决方案

 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 Vstr = "[a],[b],[c]";
String[] array = Vstr.replaceAll("\\]|\\[", "").split(",");
于 2013-09-19T08:55:55.110 回答
1

看看String.split()方法

于 2013-09-19T08:53:21.813 回答
1

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

  • 像这样使用正则表达式:\[([^]]+?)\]. 这将找出方括号之间的字符并将它们放入一个组中。
  • 使用类中.find()可用的方法Matcher并遍历匹配项。将所有内容放入列表中,以便您可以根据需要添加尽可能多的点击量。
  • 如果您确实需要将结果放在数组中,请使用该.toArray()方法。
于 2013-09-19T08:59:19.313 回答
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 回答
0

试试这个代码。

String str="[a],[b],[c]";
str= str.replaceAll("\\]|\\[", "");
String[] arr= str.split(",");
于 2013-09-19T09:14:38.380 回答