Java Help:将字符串转换为ArrayList <integer> </integer>

时间:2015-01-07 23:55:31

标签: java

我的字符串完全符合&#34; [1,2,3,4,5]&#34;。现在我想在Arraylist中添加1,2,3,4,5作为普通元素。什么是最好的方法?一种方法是将String.split元素用于字符串数组,然后在添加到Arraylist之前迭代并解析元素到Integer,但即使在这种情况下,我也不知道在.Split函数中使用的确切正则表达式。

3 个答案:

答案 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));
}