我的字符串完全符合" [1,2,3,4,5]"。现在我想在Arraylist中添加1,2,3,4,5作为普通元素。什么是最好的方法?一种方法是将String.split元素用于字符串数组,然后在添加到Arraylist之前迭代并解析元素到Integer,但即使在这种情况下,我也不知道在.Split函数中使用的确切正则表达式。
答案 0 :(得分:2)
这是一个JSON字符串,因此您可以使用任何JSON API来读取它。
例如使用Jackson:
String s = "[1,2,3,4,5]";
List<Integer> l = new ObjectMapper().reader(List.class).readValue(s);
答案 1 :(得分:1)
我认为你想要的是:
public static void main(String[] args) {
String chain = "[1,2,3,4,5]"; //This is your String
ArrayList<Integer> list = new ArrayList<Integer>(); //This is the ArrayList where you want to put the String
String chainWithOutBrackets = chain.substring(1,chain.length()-1); //The String without brackets
String[] array = chainWithOutBrackets.split(","); //Split the previous String for separate by commas
for(String s:array){ //Iterate over the previous array for put each element on the ArrayList like Integers
list.add(Integer.parseInt(s));
}
}
答案 2 :(得分:0)
(艰难的)
首先,删除方括号,然后拆分字符串,最后将拆分数组的每个条目解析为整数:
String s = "[1,2,3,4,5]";
String x = s.replaceAll("[\\[\\]]", ""); // The regex you need to find "[\[\]],
// because you want to remove any square
// brackets
String[] y = x.split(","); // Simply put the separator (a comma in this case)
int[] z = new int[y.length];
for(int i = 0; i < y.length; i++){
z[i] = Integer.parseInt(y[i]);
}
如果你想要一个列表而不是一个数组,那么:
ArrayList<Integer> z = new ArrayList<Integer>();
for(string t : y) {
z.add(Integer.parseInt(t));
}