我有一个字符串:
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(",");
============================================
更新
将多维数组转换为单维已经回答了所以请检查将多维数组更改为单数组
刚刚复制了解决方案
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 Vstr = "[a],[b],[c]";
String[] array = Vstr.replaceAll("\\]|\\[", "").split(",");
看看String.split()方法
您需要处理您的字符串并构建您的数组。您可以查看.split(String regex)
(这可能需要您进行更多处理以清理字符串),或者使用正则表达式并执行以下操作:
\[([^]]+?)\]
. 这将找出方括号之间的字符并将它们放入一个组中。.find()
可用的方法Matcher
并遍历匹配项。将所有内容放入列表中,以便您可以根据需要添加尽可能多的点击量。.toArray()
方法。正则表达式的替代方法以及我认为 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 );
}
试试这个代码。
String str="[a],[b],[c]";
str= str.replaceAll("\\]|\\[", "");
String[] arr= str.split(",");